@slicemachine/init 1.1.16-dev-alpha.24 → 1.1.16-dev-ct-slice-delete.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/utils/tracker.ts","../src/utils/logs.ts","../src/utils/auth/helpers.ts","../src/utils/auth/index.ts","../src/utils/client.ts","../src/utils/fs.ts","../node_modules/semver/internal/debug.js","../node_modules/semver/internal/constants.js","../node_modules/semver/internal/re.js","../node_modules/semver/internal/parse-options.js","../node_modules/semver/internal/identifiers.js","../node_modules/semver/classes/semver.js","../node_modules/semver/functions/parse.js","../node_modules/semver/functions/coerce.js","../node_modules/yallist/iterator.js","../node_modules/yallist/yallist.js","../node_modules/lru-cache/index.js","../node_modules/semver/functions/compare.js","../node_modules/semver/functions/eq.js","../node_modules/semver/functions/neq.js","../node_modules/semver/functions/gt.js","../node_modules/semver/functions/gte.js","../node_modules/semver/functions/lt.js","../node_modules/semver/functions/lte.js","../node_modules/semver/functions/cmp.js","../node_modules/semver/classes/comparator.js","../node_modules/semver/classes/range.js","../node_modules/semver/functions/satisfies.js","../src/utils/versionCheck.ts","../src/utils/index.ts","../src/steps/install-required-dependencies.ts","../src/steps/validate-pkg.ts","../src/utils/create-repo.ts","../src/utils/validateRepositoryName.ts","../src/steps/choose-or-create-a-repository.ts","../src/steps/detect-framework.ts","../src/steps/loginOrBypass.ts","../src/steps/configure-project.ts","../src/steps/display-final-message.ts","../src/utils/PackageManager.ts","../src/steps/install-lib.ts","../src/steps/starters/prompts.ts","../src/steps/starters/s3.ts","../src/steps/starters/slices.ts","../src/steps/starters/custom-types.ts","../src/steps/starters/documents.ts","../src/steps/sendStarterData.ts","../src/steps/set-version.ts","../src/index.ts"],"sourcesContent":["import ServerAnalytics from \"analytics-node\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { Models } from \"@slicemachine/core\";\n\nexport enum EventType {\n DownloadLibrary = \"SliceMachine Download Library\",\n InitStart = \"SliceMachine Init Start\",\n InitIdentify = \"SliceMachine Init Identify\",\n InitEnd = \"SliceMachine Init End\",\n}\n\ntype SegmentIdentifier = { userId: string } | { anonymousId: string };\n\nexport class InitTracker {\n #client: ServerAnalytics | null = null;\n #isTrackingActive = true;\n #anonymousId = \"\";\n #userId: string | null = null;\n #repository: string | null = null;\n\n initialize(segmentKey: string, isTrackingActive = true): void {\n try {\n // The initialize method cannot be used for changing some class properties\n if (!!this.#client) return;\n\n this.#isTrackingActive = isTrackingActive;\n this.#anonymousId = uuidv4();\n this.#client = new ServerAnalytics(segmentKey);\n } catch (error) {\n // If the client is not correctly setup we are silently failing as the tracker is not a critical feature\n }\n }\n\n /** Private methods **/\n\n _trackEvent(\n eventType: EventType,\n attributes: Record<string, unknown> = {}\n ): Promise<void> {\n return new Promise((resolve) => {\n if (!this._isTrackingPossible(this.#client)) {\n return resolve();\n }\n\n const identifier = this._createSegmentIdentifier();\n const payload = {\n event: eventType,\n ...identifier,\n properties: attributes,\n ...(this.#repository\n ? { context: { groupId: { Repository: this.#repository } } }\n : {}),\n };\n\n return this.#client.track(payload, () => {\n // if(_) return reject(_)\n return resolve();\n });\n });\n }\n\n _identifyEvent(userId: string, intercomHash: string): void {\n if (!this._isTrackingPossible(this.#client)) {\n return;\n }\n\n try {\n this.#client.identify({\n userId,\n anonymousId: this.#anonymousId,\n integrations: {\n Intercom: {\n user_hash: intercomHash,\n },\n },\n });\n } catch {\n // If the client is not correctly setup we are silently failing as the tracker is not a critical feature\n }\n }\n\n _isTrackingPossible(\n client: ServerAnalytics | null\n ): client is ServerAnalytics {\n return !!client && this.#isTrackingActive;\n }\n\n _createSegmentIdentifier(): SegmentIdentifier {\n return !!this.#userId\n ? { userId: this.#userId }\n : { anonymousId: this.#anonymousId };\n }\n\n /** Public methods **/\n\n setRepository(repository: string) {\n this.#repository = repository;\n }\n\n identifyUser(userId: string, intercomHash: string): void {\n this.#userId = userId;\n return this._identifyEvent(userId, intercomHash);\n }\n\n trackDownloadLibrary(library: string): Promise<void> {\n return this._trackEvent(EventType.DownloadLibrary, { library });\n }\n\n trackInitIdentify(): Promise<void> {\n return this._trackEvent(EventType.InitIdentify);\n }\n\n trackInitStart(repoDomain: string | undefined): Promise<void> {\n if (repoDomain) this.setRepository(repoDomain);\n return this._trackEvent(EventType.InitStart, { repo: repoDomain });\n }\n\n trackInitEndSuccess(framework: Models.Frameworks): Promise<void> {\n return this._trackEvent(EventType.InitEnd, {\n framework,\n repo: this.#repository,\n result: \"success\",\n });\n }\n\n trackInitEndFail(framework: Models.Frameworks, error: string): Promise<void> {\n return this._trackEvent(EventType.InitEnd, {\n framework,\n repo: this.#repository,\n result: \"error\",\n error,\n });\n }\n}\n\nconst Tracker = (() => {\n let smTrackerInstance: InitTracker;\n\n const init = () => new InitTracker();\n\n return {\n get() {\n if (!smTrackerInstance) smTrackerInstance = init();\n return smTrackerInstance;\n },\n };\n})();\n\nexport default Tracker;\n","import chalk from \"chalk\";\nimport ora from \"ora\";\n\nexport const purple = chalk.hex(\"8c76fc\");\nexport const error = chalk.hex(\"FF6868\");\nexport const warning = chalk.hex(\"F3AD38\");\nexport const underline = chalk.underline;\nexport const bold = chalk.bold;\nexport const dim = chalk.dim;\nexport const cyan = chalk.cyan;\nexport const yellow = chalk.yellow;\nexport const white = chalk.white;\n\nexport const spinner = ora;\n\nexport const writeError = (msg: string, prefix = \"Error!\"): void =>\n console.error(`${error(prefix)} ${msg}`);\n\nexport const writeWarning = (msg: string, prefix = \"Warning!\"): void =>\n console.warn(`${warning(prefix)} ${msg}`);\n\nexport const writeCheck = (msg: string): void => {\n ora().succeed(msg); // using the same check as Ora for coherence\n};\n\nexport const writeInfo = (msg: string): void => {\n console.log(`${yellow(\"ℹ\")} ${dim(msg)}`);\n};\n","import * as hapi from \"@hapi/hapi\";\nimport open from \"open\";\nimport * as logs from \"../logs\";\nimport { Utils, CONSTS } from \"@slicemachine/core\";\nimport { PrismicSharedConfigManager } from \"@slicemachine/core/build/prismic\";\n\nconst { Cookie } = Utils;\nconst { DEFAULT_BASE, DEFAULT_SERVER_PORT } = CONSTS;\n\nconst { bold, underline, spinner, writeError } = logs;\n\nexport type HandlerData = { email: string; cookies: ReadonlyArray<string> };\n\nexport const isHandlerData = (\n data: string | Record<string, unknown>\n): data is HandlerData => {\n if (typeof data != \"object\") return false;\n\n const { email, cookies } = data as Partial<HandlerData>;\n return (\n Boolean(email && cookies) &&\n Array.isArray(cookies) &&\n !cookies.some((c: unknown) => typeof c !== \"string\")\n );\n};\n\nconst Routes = {\n authentication:\n (server: hapi.Server) =>\n (\n onSuccess: (data: HandlerData) => void,\n onFail: () => void\n ): hapi.ServerRoute => ({\n method: \"POST\",\n path: \"/\",\n handler: authenticationHandler(server)(onSuccess, onFail),\n }),\n\n notFound: {\n method: [\"GET\", \"POST\"],\n path: \"/{any*}\",\n handler: (\n request: hapi.Request,\n h: hapi.ResponseToolkit\n ): hapi.ResponseObject => {\n return h\n .response(`not found: [${request.method}]: ${request.url.toString()}`)\n .code(404);\n },\n },\n};\n\nexport function validatePayload(\n payload: Buffer | string | Record<string, unknown>\n): HandlerData | null {\n if (Buffer.isBuffer(payload)) return null;\n return isHandlerData(payload) ? payload : null;\n}\n\nconst authenticationHandler =\n (server: hapi.Server) =>\n (onSuccess: (data: HandlerData) => void, onFail: () => void) => {\n return (request: hapi.Request, h: hapi.ResponseToolkit) => {\n try {\n const data: HandlerData | null = validatePayload(\n request.payload as Buffer | string | Record<string, unknown>\n ); // type coming from the lib\n\n if (!data) {\n onFail();\n h.response(\"Error with cookies\").code(400);\n throw new Error(\n \"It seems the server didn't respond properly, please contact us.\"\n );\n }\n onSuccess(data);\n return h.response(data).code(200);\n } finally {\n void server.stop({ timeout: 10000 });\n }\n };\n };\n\nfunction stripTrailingSlash(str: string) {\n return str.endsWith(\"/\") ? str.slice(0, -1) : str;\n}\n\nfunction buildServer(base: string, port: number, host: string): hapi.Server {\n const server = hapi.server({\n port,\n host,\n routes: {\n cors: {\n origin: [stripTrailingSlash(base)],\n headers: [\"Origin\", \"X-Requested-With\", \"Content-Type\", \"Accept\"],\n },\n },\n });\n return server;\n}\n\nexport function askSingleChar(title: string): Promise<string> {\n return new Promise((resolve) => {\n process.stdout.write(title);\n const rawMode: boolean = process.stdin.isRaw;\n if (process.stdin.setRawMode) process.stdin.setRawMode(true);\n\n function handler(key: Buffer) {\n const response: string = key.toString(\"utf-8\");\n if (process.stdin.setRawMode) process.stdin.setRawMode(Boolean(rawMode));\n process.stdin.removeListener(\"data\", handler);\n resolve(response);\n }\n\n process.stdin.on(\"data\", handler);\n });\n}\n\nexport async function startServerAndOpenBrowser(\n url: string,\n action: \"login\" | \"signup\",\n base: string = DEFAULT_BASE,\n port: number = DEFAULT_SERVER_PORT\n): Promise<{\n onLoginFail: () => void;\n}> {\n const confirmation = await askSingleChar(\n `>> Press any key to open the browser to ${action} or q to exit:`\n );\n if (confirmation === \"q\" || confirmation === \"\\u0003\")\n return process.exit(-1);\n\n const s = spinner(\"Waiting for the browser response\");\n\n const onLoginFail = () => {\n s.stop();\n writeError(`We failed to log you into your Prismic account`);\n console.log(`Run ${bold(\"npx slicemachine init\")} again!`);\n process.exit(-1);\n };\n\n function onSuccess(data: HandlerData) {\n s.succeed(`Logged in as ${bold(data.email)}`).stop();\n PrismicSharedConfigManager.setProperties({\n cookies: Cookie.serializeCookies(data.cookies),\n base,\n });\n }\n\n function onFail(): void {\n onLoginFail();\n }\n\n const server = buildServer(base, port, \"localhost\");\n server.route([\n Routes.authentication(server)(onSuccess, onFail),\n Routes.notFound,\n ]);\n\n return server.start().then(() => {\n console.log(\"\\nOpening browser to \" + underline(url));\n s.start();\n void open(url);\n return {\n onLoginFail,\n };\n });\n}\n","import { Utils } from \"@slicemachine/core\";\nimport { startServerAndOpenBrowser } from \"./helpers\";\nimport {\n Endpoints,\n PrismicSharedConfigManager,\n} from \"@slicemachine/core/build/prismic\";\nimport { InitClient } from \"../client\";\n\nasync function startAuth({\n client,\n url,\n action,\n}: {\n client: InitClient;\n url: string;\n action: \"signup\" | \"login\";\n}): Promise<void> {\n const { onLoginFail } = await startServerAndOpenBrowser(\n url,\n action,\n client.apisEndpoints.Wroom\n );\n try {\n // We wait 3 minutes before timeout\n await Utils.Poll.startPolling<boolean, boolean>(\n () => Auth.validateSession(client),\n (isSessionValid): isSessionValid is boolean => isSessionValid == true,\n 3000,\n 60\n );\n return;\n } catch (e) {\n onLoginFail();\n }\n}\n\nexport const Auth = {\n login: async (client: InitClient): Promise<void> => {\n const endpoints = Endpoints.buildEndpoints(client.apisEndpoints.Wroom);\n return startAuth({\n client,\n url: endpoints.Dashboard.cliLogin,\n action: \"login\",\n });\n },\n validateSession: async (client: InitClient): Promise<boolean> => {\n const authToken = PrismicSharedConfigManager.getAuth();\n\n // verify token is by retrieving the profile, update the config if need be.\n return client\n .updateAuthenticationToken(authToken)\n .profile()\n .then((userProfile) => {\n // settings shortId and IntercomHash as we switch between dev and prod.\n PrismicSharedConfigManager.setProperties({\n shortId: userProfile.shortId,\n intercomHash: userProfile.intercomHash,\n });\n return true;\n })\n .catch(() => false);\n },\n};\n","import * as t from \"io-ts\";\nimport { Models } from \"@slicemachine/core\";\nimport { PrismicSharedConfigManager } from \"@slicemachine/core/build/prismic\";\nimport { Client, getAndValidateResponse } from \"@slicemachine/client\";\nimport { parse } from \"@slicemachine/core/build/utils/cookie\";\n\nexport class InitClient extends Client {\n async listRepositories(): Promise<Models.Repository[]> {\n return getAndValidateResponse<Models.Repository[]>(\n this._get(`${this.apisEndpoints.Users}repositories`),\n \"repository list\",\n t.array(Models.Repository)\n );\n }\n\n async createRepository(\n domain: string,\n framework: Models.Frameworks\n ): Promise<string> {\n const data = {\n domain,\n framework,\n plan: \"personal\",\n isAnnual: \"false\",\n role: \"developer\",\n };\n\n return this._fetch({\n method: \"post\",\n url: `${this.apisEndpoints.Wroom}authentication/newrepository?app=slicemachine`,\n data: data,\n headers: {\n Cookie: PrismicSharedConfigManager.get().cookies,\n \"User-Agent\": \"prismic-cli/sm\", // special user agent just for this route.\n },\n }).then(() => domain);\n }\n\n async deleteRepository(\n domain: string,\n password: string,\n cookies: string\n ): Promise<string> {\n const repositoryDirectUrl = new URL(this.apisEndpoints.Wroom);\n repositoryDirectUrl.hostname = `${domain}.${repositoryDirectUrl.hostname}`;\n\n const token = parse(cookies).X_XSRF;\n\n return this._fetch({\n method: \"post\",\n url: `${repositoryDirectUrl.toString()}app/settings/delete?_=${token}`,\n data: { confirm: domain, password },\n headers: {\n Cookie: cookies,\n \"User-Agent\": \"prismic-cli/0\", // special user agent just for this route.\n },\n }).then(() => domain);\n }\n\n async domainExist(domain: string): Promise<boolean> {\n return getAndValidateResponse<boolean>(\n this._get(\n `${this.apisEndpoints.Wroom}app/dashboard/repositories/${domain}/exists`\n ),\n \"repository exists\",\n t.boolean\n );\n }\n\n async pushDocuments(\n signature: string,\n documents: Record<string, unknown>,\n cookies: string\n ) {\n if (!this.repository) throw new Error(\"Repository undefined in the client\");\n const repositoryDirectUrl = new URL(this.apisEndpoints.Wroom);\n repositoryDirectUrl.hostname = `${this.repository}.${repositoryDirectUrl.hostname}`;\n\n return this._fetch({\n method: \"post\",\n url: `${repositoryDirectUrl.toString()}starter/documents`,\n data: { signature, documents: JSON.stringify(documents) },\n headers: {\n Cookie: cookies,\n \"User-Agent\": \"prismic-cli/0\", // special user agent just for this route.\n },\n });\n }\n}\n","import fs from \"fs\";\nimport path from \"path\";\n\nexport async function lsdir(dir: string): Promise<Array<string>> {\n return fs.promises.readdir(dir).then((dirs) => {\n return dirs\n .filter((name) => fs.statSync(path.join(dir, name)).isDirectory())\n .map((subdirectory) => path.join(dir, subdirectory));\n });\n}\n\nexport async function lsfiles(dir: string): Promise<Array<string>> {\n return fs.promises.readdir(dir).then((dirs) => {\n return dirs\n .filter((name) => fs.statSync(path.join(dir, name)).isFile())\n .map((file) => path.join(dir, file));\n });\n}\n","const debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\nmodule.exports = {\n SEMVER_SPEC_VERSION,\n MAX_LENGTH,\n MAX_SAFE_INTEGER,\n MAX_SAFE_COMPONENT_LENGTH,\n}\n","const { MAX_SAFE_COMPONENT_LENGTH } = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst src = exports.src = []\nconst t = exports.t = {}\nlet R = 0\n\nconst createToken = (name, value, isGlobal) => {\n const index = R++\n debug(name, index, value)\n t[name] = index\n src[index] = value\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '[0-9]+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', '\\\\d*[a-zA-Z-][a-zA-Z0-9-]*')\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+')\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCE', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n","// parse out just the options we care about so we always get a consistent\n// obj with keys in a consistent order.\nconst opts = ['includePrerelease', 'loose', 'rtl']\nconst parseOptions = options =>\n !options ? {}\n : typeof options !== 'object' ? { loose: true }\n : opts.filter(k => options[k]).reduce((o, k) => {\n o[k] = true\n return o\n }, {})\nmodule.exports = parseOptions\n","const numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers,\n}\n","const debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return (\n compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n )\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.format()\n this.raw = this.version\n return this\n }\n}\n\nmodule.exports = SemVer\n","const { MAX_LENGTH } = require('../internal/constants')\nconst { re, t } = require('../internal/re')\nconst SemVer = require('../classes/semver')\n\nconst parseOptions = require('../internal/parse-options')\nconst parse = (version, options) => {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n const r = options.loose ? re[t.LOOSE] : re[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nmodule.exports = parse\n","const SemVer = require('../classes/semver')\nconst parse = require('./parse')\nconst { re, t } = require('../internal/re')\n\nconst coerce = (version, options) => {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n let match = null\n if (!options.rtl) {\n match = version.match(re[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n let next\n while ((next = re[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n re[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n return parse(`${match[2]}.${match[3] || '0'}.${match[4] || '0'}`, options)\n}\nmodule.exports = coerce\n","'use strict'\nmodule.exports = function (Yallist) {\n Yallist.prototype[Symbol.iterator] = function* () {\n for (let walker = this.head; walker; walker = walker.next) {\n yield walker.value\n }\n }\n}\n","'use strict'\nmodule.exports = Yallist\n\nYallist.Node = Node\nYallist.create = Yallist\n\nfunction Yallist (list) {\n var self = this\n if (!(self instanceof Yallist)) {\n self = new Yallist()\n }\n\n self.tail = null\n self.head = null\n self.length = 0\n\n if (list && typeof list.forEach === 'function') {\n list.forEach(function (item) {\n self.push(item)\n })\n } else if (arguments.length > 0) {\n for (var i = 0, l = arguments.length; i < l; i++) {\n self.push(arguments[i])\n }\n }\n\n return self\n}\n\nYallist.prototype.removeNode = function (node) {\n if (node.list !== this) {\n throw new Error('removing node which does not belong to this list')\n }\n\n var next = node.next\n var prev = node.prev\n\n if (next) {\n next.prev = prev\n }\n\n if (prev) {\n prev.next = next\n }\n\n if (node === this.head) {\n this.head = next\n }\n if (node === this.tail) {\n this.tail = prev\n }\n\n node.list.length--\n node.next = null\n node.prev = null\n node.list = null\n\n return next\n}\n\nYallist.prototype.unshiftNode = function (node) {\n if (node === this.head) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var head = this.head\n node.list = this\n node.next = head\n if (head) {\n head.prev = node\n }\n\n this.head = node\n if (!this.tail) {\n this.tail = node\n }\n this.length++\n}\n\nYallist.prototype.pushNode = function (node) {\n if (node === this.tail) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var tail = this.tail\n node.list = this\n node.prev = tail\n if (tail) {\n tail.next = node\n }\n\n this.tail = node\n if (!this.head) {\n this.head = node\n }\n this.length++\n}\n\nYallist.prototype.push = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n push(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.unshift = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n unshift(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.pop = function () {\n if (!this.tail) {\n return undefined\n }\n\n var res = this.tail.value\n this.tail = this.tail.prev\n if (this.tail) {\n this.tail.next = null\n } else {\n this.head = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.shift = function () {\n if (!this.head) {\n return undefined\n }\n\n var res = this.head.value\n this.head = this.head.next\n if (this.head) {\n this.head.prev = null\n } else {\n this.tail = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.forEach = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.head, i = 0; walker !== null; i++) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.next\n }\n}\n\nYallist.prototype.forEachReverse = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.prev\n }\n}\n\nYallist.prototype.get = function (n) {\n for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.next\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.getReverse = function (n) {\n for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.prev\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.map = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.head; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.next\n }\n return res\n}\n\nYallist.prototype.mapReverse = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.tail; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.prev\n }\n return res\n}\n\nYallist.prototype.reduce = function (fn, initial) {\n var acc\n var walker = this.head\n if (arguments.length > 1) {\n acc = initial\n } else if (this.head) {\n walker = this.head.next\n acc = this.head.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = 0; walker !== null; i++) {\n acc = fn(acc, walker.value, i)\n walker = walker.next\n }\n\n return acc\n}\n\nYallist.prototype.reduceReverse = function (fn, initial) {\n var acc\n var walker = this.tail\n if (arguments.length > 1) {\n acc = initial\n } else if (this.tail) {\n walker = this.tail.prev\n acc = this.tail.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = this.length - 1; walker !== null; i--) {\n acc = fn(acc, walker.value, i)\n walker = walker.prev\n }\n\n return acc\n}\n\nYallist.prototype.toArray = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.head; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.next\n }\n return arr\n}\n\nYallist.prototype.toArrayReverse = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.tail; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.prev\n }\n return arr\n}\n\nYallist.prototype.slice = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n walker = walker.next\n }\n for (; walker !== null && i < to; i++, walker = walker.next) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.sliceReverse = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n walker = walker.prev\n }\n for (; walker !== null && i > from; i--, walker = walker.prev) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.splice = function (start, deleteCount, ...nodes) {\n if (start > this.length) {\n start = this.length - 1\n }\n if (start < 0) {\n start = this.length + start;\n }\n\n for (var i = 0, walker = this.head; walker !== null && i < start; i++) {\n walker = walker.next\n }\n\n var ret = []\n for (var i = 0; walker && i < deleteCount; i++) {\n ret.push(walker.value)\n walker = this.removeNode(walker)\n }\n if (walker === null) {\n walker = this.tail\n }\n\n if (walker !== this.head && walker !== this.tail) {\n walker = walker.prev\n }\n\n for (var i = 0; i < nodes.length; i++) {\n walker = insert(this, walker, nodes[i])\n }\n return ret;\n}\n\nYallist.prototype.reverse = function () {\n var head = this.head\n var tail = this.tail\n for (var walker = head; walker !== null; walker = walker.prev) {\n var p = walker.prev\n walker.prev = walker.next\n walker.next = p\n }\n this.head = tail\n this.tail = head\n return this\n}\n\nfunction insert (self, node, value) {\n var inserted = node === self.head ?\n new Node(value, null, node, self) :\n new Node(value, node, node.next, self)\n\n if (inserted.next === null) {\n self.tail = inserted\n }\n if (inserted.prev === null) {\n self.head = inserted\n }\n\n self.length++\n\n return inserted\n}\n\nfunction push (self, item) {\n self.tail = new Node(item, self.tail, null, self)\n if (!self.head) {\n self.head = self.tail\n }\n self.length++\n}\n\nfunction unshift (self, item) {\n self.head = new Node(item, null, self.head, self)\n if (!self.tail) {\n self.tail = self.head\n }\n self.length++\n}\n\nfunction Node (value, prev, next, list) {\n if (!(this instanceof Node)) {\n return new Node(value, prev, next, list)\n }\n\n this.list = list\n this.value = value\n\n if (prev) {\n prev.next = this\n this.prev = prev\n } else {\n this.prev = null\n }\n\n if (next) {\n next.prev = this\n this.next = next\n } else {\n this.next = null\n }\n}\n\ntry {\n // add if support for Symbol.iterator is present\n require('./iterator.js')(Yallist)\n} catch (er) {}\n","'use strict'\n\n// A linked list to keep track of recently-used-ness\nconst Yallist = require('yallist')\n\nconst MAX = Symbol('max')\nconst LENGTH = Symbol('length')\nconst LENGTH_CALCULATOR = Symbol('lengthCalculator')\nconst ALLOW_STALE = Symbol('allowStale')\nconst MAX_AGE = Symbol('maxAge')\nconst DISPOSE = Symbol('dispose')\nconst NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet')\nconst LRU_LIST = Symbol('lruList')\nconst CACHE = Symbol('cache')\nconst UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet')\n\nconst naiveLength = () => 1\n\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass LRUCache {\n constructor (options) {\n if (typeof options === 'number')\n options = { max: options }\n\n if (!options)\n options = {}\n\n if (options.max && (typeof options.max !== 'number' || options.max < 0))\n throw new TypeError('max must be a non-negative number')\n // Kind of weird to have a default max of Infinity, but oh well.\n const max = this[MAX] = options.max || Infinity\n\n const lc = options.length || naiveLength\n this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc\n this[ALLOW_STALE] = options.stale || false\n if (options.maxAge && typeof options.maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n this[MAX_AGE] = options.maxAge || 0\n this[DISPOSE] = options.dispose\n this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false\n this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false\n this.reset()\n }\n\n // resize the cache when the max changes.\n set max (mL) {\n if (typeof mL !== 'number' || mL < 0)\n throw new TypeError('max must be a non-negative number')\n\n this[MAX] = mL || Infinity\n trim(this)\n }\n get max () {\n return this[MAX]\n }\n\n set allowStale (allowStale) {\n this[ALLOW_STALE] = !!allowStale\n }\n get allowStale () {\n return this[ALLOW_STALE]\n }\n\n set maxAge (mA) {\n if (typeof mA !== 'number')\n throw new TypeError('maxAge must be a non-negative number')\n\n this[MAX_AGE] = mA\n trim(this)\n }\n get maxAge () {\n return this[MAX_AGE]\n }\n\n // resize the cache when the lengthCalculator changes.\n set lengthCalculator (lC) {\n if (typeof lC !== 'function')\n lC = naiveLength\n\n if (lC !== this[LENGTH_CALCULATOR]) {\n this[LENGTH_CALCULATOR] = lC\n this[LENGTH] = 0\n this[LRU_LIST].forEach(hit => {\n hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)\n this[LENGTH] += hit.length\n })\n }\n trim(this)\n }\n get lengthCalculator () { return this[LENGTH_CALCULATOR] }\n\n get length () { return this[LENGTH] }\n get itemCount () { return this[LRU_LIST].length }\n\n rforEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].tail; walker !== null;) {\n const prev = walker.prev\n forEachStep(this, fn, walker, thisp)\n walker = prev\n }\n }\n\n forEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].head; walker !== null;) {\n const next = walker.next\n forEachStep(this, fn, walker, thisp)\n walker = next\n }\n }\n\n keys () {\n return this[LRU_LIST].toArray().map(k => k.key)\n }\n\n values () {\n return this[LRU_LIST].toArray().map(k => k.value)\n }\n\n reset () {\n if (this[DISPOSE] &&\n this[LRU_LIST] &&\n this[LRU_LIST].length) {\n this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value))\n }\n\n this[CACHE] = new Map() // hash of items by key\n this[LRU_LIST] = new Yallist() // list of items in order of use recency\n this[LENGTH] = 0 // length of items in the list\n }\n\n dump () {\n return this[LRU_LIST].map(hit =>\n isStale(this, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }).toArray().filter(h => h)\n }\n\n dumpLru () {\n return this[LRU_LIST]\n }\n\n set (key, value, maxAge) {\n maxAge = maxAge || this[MAX_AGE]\n\n if (maxAge && typeof maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n\n const now = maxAge ? Date.now() : 0\n const len = this[LENGTH_CALCULATOR](value, key)\n\n if (this[CACHE].has(key)) {\n if (len > this[MAX]) {\n del(this, this[CACHE].get(key))\n return false\n }\n\n const node = this[CACHE].get(key)\n const item = node.value\n\n // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n if (this[DISPOSE]) {\n if (!this[NO_DISPOSE_ON_SET])\n this[DISPOSE](key, item.value)\n }\n\n item.now = now\n item.maxAge = maxAge\n item.value = value\n this[LENGTH] += len - item.length\n item.length = len\n this.get(key)\n trim(this)\n return true\n }\n\n const hit = new Entry(key, value, len, now, maxAge)\n\n // oversized objects fall out of cache automatically.\n if (hit.length > this[MAX]) {\n if (this[DISPOSE])\n this[DISPOSE](key, value)\n\n return false\n }\n\n this[LENGTH] += hit.length\n this[LRU_LIST].unshift(hit)\n this[CACHE].set(key, this[LRU_LIST].head)\n trim(this)\n return true\n }\n\n has (key) {\n if (!this[CACHE].has(key)) return false\n const hit = this[CACHE].get(key).value\n return !isStale(this, hit)\n }\n\n get (key) {\n return get(this, key, true)\n }\n\n peek (key) {\n return get(this, key, false)\n }\n\n pop () {\n const node = this[LRU_LIST].tail\n if (!node)\n return null\n\n del(this, node)\n return node.value\n }\n\n del (key) {\n del(this, this[CACHE].get(key))\n }\n\n load (arr) {\n // reset the cache\n this.reset()\n\n const now = Date.now()\n // A previous serialized cache has the most recent items first\n for (let l = arr.length - 1; l >= 0; l--) {\n const hit = arr[l]\n const expiresAt = hit.e || 0\n if (expiresAt === 0)\n // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v)\n else {\n const maxAge = expiresAt - now\n // dont add already expired items\n if (maxAge > 0) {\n this.set(hit.k, hit.v, maxAge)\n }\n }\n }\n }\n\n prune () {\n this[CACHE].forEach((value, key) => get(this, key, false))\n }\n}\n\nconst get = (self, key, doUse) => {\n const node = self[CACHE].get(key)\n if (node) {\n const hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n return undefined\n } else {\n if (doUse) {\n if (self[UPDATE_AGE_ON_GET])\n node.value.now = Date.now()\n self[LRU_LIST].unshiftNode(node)\n }\n }\n return hit.value\n }\n}\n\nconst isStale = (self, hit) => {\n if (!hit || (!hit.maxAge && !self[MAX_AGE]))\n return false\n\n const diff = Date.now() - hit.now\n return hit.maxAge ? diff > hit.maxAge\n : self[MAX_AGE] && (diff > self[MAX_AGE])\n}\n\nconst trim = self => {\n if (self[LENGTH] > self[MAX]) {\n for (let walker = self[LRU_LIST].tail;\n self[LENGTH] > self[MAX] && walker !== null;) {\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n const prev = walker.prev\n del(self, walker)\n walker = prev\n }\n }\n}\n\nconst del = (self, node) => {\n if (node) {\n const hit = node.value\n if (self[DISPOSE])\n self[DISPOSE](hit.key, hit.value)\n\n self[LENGTH] -= hit.length\n self[CACHE].delete(hit.key)\n self[LRU_LIST].removeNode(node)\n }\n}\n\nclass Entry {\n constructor (key, value, length, now, maxAge) {\n this.key = key\n this.value = value\n this.length = length\n this.now = now\n this.maxAge = maxAge || 0\n }\n}\n\nconst forEachStep = (self, fn, node, thisp) => {\n let hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n hit = undefined\n }\n if (hit)\n fn.call(thisp, hit.value, hit.key, self)\n}\n\nmodule.exports = LRUCache\n","const SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n","const compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n","const compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n","const compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n","const compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n","const compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n","const compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n","const eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst cmp = (a, op, b, loose) => {\n switch (op) {\n case '===':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a === b\n\n case '!==':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError(`Invalid operator: ${op}`)\n }\n}\nmodule.exports = cmp\n","const ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n static get ANY () {\n return ANY\n }\n\n constructor (comp, options) {\n options = parseOptions(options)\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n }\n\n parse (comp) {\n const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const m = comp.match(r)\n\n if (!m) {\n throw new TypeError(`Invalid comparator: ${comp}`)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n }\n\n toString () {\n return this.value\n }\n\n test (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n }\n\n intersects (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false,\n }\n }\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n return new Range(comp.value, options).test(this.value)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n return new Range(this.value, options).test(comp.semver)\n }\n\n const sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n const sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n const sameSemVer = this.semver.version === comp.semver.version\n const differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n const oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<')\n const oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>')\n\n return (\n sameDirectionIncreasing ||\n sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan ||\n oppositeDirectionsGreaterThan\n )\n }\n}\n\nmodule.exports = Comparator\n\nconst parseOptions = require('../internal/parse-options')\nconst { re, t } = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n","// hoisted class for cyclic dependency\nclass Range {\n constructor (range, options) {\n options = parseOptions(options)\n\n if (range instanceof Range) {\n if (\n range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease\n ) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n // just put it in the set and return\n this.raw = range.value\n this.set = [[range]]\n this.format()\n return this\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First, split based on boolean or ||\n this.raw = range\n this.set = range\n .split('||')\n // map the range to a 2d array of comparators\n .map(r => this.parseRange(r.trim()))\n // throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter(c => c.length)\n\n if (!this.set.length) {\n throw new TypeError(`Invalid SemVer Range: ${range}`)\n }\n\n // if we have any that are not the null set, throw out null sets.\n if (this.set.length > 1) {\n // keep the first one, in case they're all null sets\n const first = this.set[0]\n this.set = this.set.filter(c => !isNullSet(c[0]))\n if (this.set.length === 0) {\n this.set = [first]\n } else if (this.set.length > 1) {\n // if we have any that are *, then the range is just *\n for (const c of this.set) {\n if (c.length === 1 && isAny(c[0])) {\n this.set = [c]\n break\n }\n }\n }\n }\n\n this.format()\n }\n\n format () {\n this.range = this.set\n .map((comps) => {\n return comps.join(' ').trim()\n })\n .join('||')\n .trim()\n return this.range\n }\n\n toString () {\n return this.range\n }\n\n parseRange (range) {\n range = range.trim()\n\n // memoize range parsing for performance.\n // this is a very hot path, and fully deterministic.\n const memoOpts = Object.keys(this.options).join(',')\n const memoKey = `parseRange:${memoOpts}:${range}`\n const cached = cache.get(memoKey)\n if (cached) {\n return cached\n }\n\n const loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range)\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n let rangeList = range\n .split(' ')\n .map(comp => parseComparator(comp, this.options))\n .join(' ')\n .split(/\\s+/)\n // >=0.0.0 is equivalent to *\n .map(comp => replaceGTE0(comp, this.options))\n\n if (loose) {\n // in loose mode, throw out any that are not valid comparators\n rangeList = rangeList.filter(comp => {\n debug('loose invalid filter', comp, this.options)\n return !!comp.match(re[t.COMPARATORLOOSE])\n })\n }\n debug('range list', rangeList)\n\n // if any comparators are the null set, then replace with JUST null set\n // if more than one comparator, remove any * comparators\n // also, don't include the same comparator more than once\n const rangeMap = new Map()\n const comparators = rangeList.map(comp => new Comparator(comp, this.options))\n for (const comp of comparators) {\n if (isNullSet(comp)) {\n return [comp]\n }\n rangeMap.set(comp.value, comp)\n }\n if (rangeMap.size > 1 && rangeMap.has('')) {\n rangeMap.delete('')\n }\n\n const result = [...rangeMap.values()]\n cache.set(memoKey, result)\n return result\n }\n\n intersects (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some((thisComparators) => {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some((rangeComparators) => {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every((thisComparator) => {\n return rangeComparators.every((rangeComparator) => {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n }\n\n // if ANY of the sets match ALL of its comparators, then pass\n test (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (let i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n }\n}\nmodule.exports = Range\n\nconst LRU = require('lru-cache')\nconst cache = new LRU({ max: 1000 })\n\nconst parseOptions = require('../internal/parse-options')\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n re,\n t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace,\n} = require('../internal/re')\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n let result = true\n const remainingComparators = comparators.slice()\n let testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every((otherComparator) => {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst replaceTildes = (comp, options) =>\n comp.trim().split(/\\s+/).map((c) => {\n return replaceTilde(c, options)\n }).join(' ')\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst replaceCarets = (comp, options) =>\n comp.trim().split(/\\s+/).map((c) => {\n return replaceCaret(c, options)\n }).join(' ')\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map((c) => {\n return replaceXRange(c, options)\n }).join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<') {\n pr = '-0'\n }\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp.trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return (`${from} ${to}`).trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n","const Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n","import semverCoerce from \"semver/functions/coerce\";\nimport semverSatisfies from \"semver/functions/satisfies\";\n\nexport function checkVersion(threshold: string, version?: string): boolean {\n if (!version) return false;\n const parsedVersion = semverCoerce(version);\n if (parsedVersion === null) return false;\n\n return semverSatisfies(parsedVersion, threshold);\n}\n","import { ApplicationMode } from \"@slicemachine/client\";\nimport util from \"util\";\nimport { exec } from \"child_process\";\nexport * as logs from \"./logs\";\nexport { Auth } from \"./auth\";\nexport * from \"./client\";\nexport * from \"./fs\";\nexport * from \"./versionCheck\";\n\nexport function findArgument(args: string[], name: string): string | undefined {\n const flagIndex: number = args.indexOf(`--${name}`);\n\n if (flagIndex === -1) return;\n if (args.length < flagIndex + 2) return;\n\n const flagValue = args[flagIndex + 1];\n\n if (flagValue.startsWith(\"--\")) return;\n return flagValue;\n}\n\nexport function findFlag(args: string[], name: string): boolean {\n const toFind = `--${name}`;\n return args.includes(toFind);\n}\n\nexport const execCommand: (\n command: string\n) => Promise<{ stderr: string; stdout: string }> = util.promisify(exec);\n\nexport function getApplicationMode(\n argumentValue: string | undefined\n): ApplicationMode | null {\n switch (argumentValue) {\n case ApplicationMode.PROD:\n case ApplicationMode.STAGE:\n case ApplicationMode.DEV:\n return argumentValue;\n default:\n return null;\n }\n}\n","import path from \"path\";\nimport { checkVersion, execCommand, logs } from \"../utils\";\nimport { CONSTS, Models } from \"@slicemachine/core\";\nimport * as NodeUtils from \"@slicemachine/core/build/node-utils\";\n\nconst {\n PRISMIC_CLIENT,\n PRISMIC_DOM_PACKAGE_NAME,\n PRISMIC_REACT_PACKAGE_NAME,\n PRISMIC_NEXT,\n SM_PACKAGE_NAME,\n NUXT_PRISMIC,\n PRISMIC_VUE,\n SLICE_SIMULATOR_REACT,\n SLICE_SIMULATOR_VUE,\n PRISMIC_HELPERS,\n PRISMIC_TYPES,\n} = CONSTS;\n\nexport function nextDeps(version?: string): string {\n if (checkVersion(\">=13.0.0\", version)) {\n return PRISMIC_NEXT;\n }\n\n return \"\";\n}\n\nfunction depsForFramework(\n framework: Models.Frameworks,\n version?: string\n): string {\n switch (framework) {\n case Models.Frameworks.react:\n return `${PRISMIC_REACT_PACKAGE_NAME} ${PRISMIC_CLIENT} ${PRISMIC_HELPERS}`;\n case Models.Frameworks.next:\n return `${PRISMIC_REACT_PACKAGE_NAME} ${nextDeps(\n version\n )} ${PRISMIC_CLIENT} ${SLICE_SIMULATOR_REACT} ${PRISMIC_HELPERS}`;\n case Models.Frameworks.svelte:\n return `${PRISMIC_DOM_PACKAGE_NAME} ${PRISMIC_CLIENT}`;\n case Models.Frameworks.nuxt:\n return `${NUXT_PRISMIC} ${SLICE_SIMULATOR_VUE}`;\n case Models.Frameworks.vue:\n return `${PRISMIC_VUE} ${PRISMIC_CLIENT} ${PRISMIC_DOM_PACKAGE_NAME}`;\n default:\n return \"\";\n }\n}\n\nasync function addAndInstallDeps(\n framework: Models.Frameworks,\n version?: string,\n useYarn = false\n): Promise<string> {\n const installDevDependencyCommand = useYarn\n ? \"yarn add -D\"\n : \"npm install --save-dev\";\n const installDependencyCommand = useYarn ? \"yarn add\" : \"npm install --save\";\n\n const { stderr } = await execCommand(\n `${installDevDependencyCommand} ${SM_PACKAGE_NAME} ${PRISMIC_TYPES}`\n );\n\n const deps = depsForFramework(framework, version);\n if (deps) await execCommand(`${installDependencyCommand} ${deps}`);\n\n return stderr;\n}\n\nasync function installDeps(useYarn = false): Promise<string> {\n const installCommand = useYarn ? \"yarn\" : \"npm install\";\n const { stderr } = await execCommand(installCommand);\n return stderr;\n}\n\nexport async function installRequiredDependencies(\n cwd: string,\n framework: Models.Frameworks,\n skipDependencies: boolean,\n version?: string\n): Promise<void> {\n const yarnLock = NodeUtils.Files.exists(NodeUtils.YarnLockPath(cwd));\n\n const spinner = logs.spinner(\"Installing Slice Machine\");\n spinner.start();\n\n const stderr = await (skipDependencies\n ? installDeps(yarnLock)\n : addAndInstallDeps(framework, version, yarnLock));\n\n const pathToPkg = path.join(\n NodeUtils.PackagePaths(cwd).value(),\n SM_PACKAGE_NAME\n );\n const isPackageInstalled = NodeUtils.Files.exists(pathToPkg);\n\n if (isPackageInstalled || !stderr.length) {\n spinner.succeed(\"Slice Machine was installed successfully\");\n return;\n }\n\n spinner.fail();\n logs.writeWarning(\n `could not install ${SM_PACKAGE_NAME}. Please do it manually!`\n );\n}\n","import * as NodeUtils from \"@slicemachine/core/build/node-utils\";\nimport { logs } from \"../utils\";\n\nexport function validatePkg(cwd: string): void {\n const jsonPackage = NodeUtils.retrieveJsonPackage(cwd);\n if (!jsonPackage.exists) {\n logs.writeError(`package.json not found. Are you in the right folder?`);\n return process.exit(-1);\n }\n if (!jsonPackage.content) {\n logs.writeError(`could not parse package.json.`);\n return process.exit(-1);\n }\n}\n","import type { Models } from \"@slicemachine/core\";\nimport * as logs from \"./logs\";\nimport { InitClient } from \"./client\";\nimport Tracker from \"../utils/tracker\";\n\nexport function createRepository(\n client: InitClient,\n domain: string,\n framework: Models.Frameworks\n): Promise<string> {\n const spinner = logs.spinner(\"Creating Prismic Repository\");\n spinner.start();\n\n return client\n .createRepository(domain, framework)\n .then((domain: string) => {\n const addressUrl = new URL(client.apisEndpoints.Wroom);\n addressUrl.hostname = `${domain}.${addressUrl.hostname}`;\n const address = addressUrl.toString();\n spinner.succeed(`We created your new repository ${address}`);\n\n return domain;\n })\n .catch(async (error: Error) => {\n spinner.fail(`Error creating repository ${domain}`);\n await Tracker.get().trackInitEndFail(\n framework,\n \"Failed to create repository\"\n );\n if (error.message) {\n logs.writeError(error.message);\n }\n logs.writeError(`We failed to create you new prismic repository`);\n console.log(`Run ${logs.bold(\"npx @slicemachine/init\")} again!`);\n process.exit(-1);\n });\n}\n","import { InitClient } from \"./client\";\n\nexport async function validateRepositoryName(\n client: InitClient,\n name: string\n): Promise<boolean> {\n const domain = name.trim();\n const errors = [];\n\n const startsWithLetter = /^[a-zA-Z]/.test(domain);\n if (!startsWithLetter) errors.push(\"Must start with a letter.\");\n\n const acceptedChars = /^[a-z0-9-]+$/.test(domain);\n if (!acceptedChars)\n errors.push(\"Must contain only lowercase letters, numbers and hyphens.\");\n\n const fourCharactersOrMore = domain.length >= 4;\n if (!fourCharactersOrMore)\n errors.push(\n \"Must have four or more alphanumeric characters and/or hyphens.\"\n );\n\n const endsWithALetterOrNumber = /[a-z0-9]$/.test(domain);\n if (!endsWithALetterOrNumber)\n errors.push(\"Must end in a letter or a number.\");\n\n const thirtyCharacterOrLess = domain.length <= 30;\n if (!thirtyCharacterOrLess) errors.push(\"Must be 30 characters or less\");\n\n if (errors.length > 0) {\n const errorString = errors.map((d, i) => `(${i + 1}: ${d}`).join(\" \");\n const msg = `Validation errors: ${errorString}`;\n return Promise.reject(new Error(msg));\n }\n\n return client\n .domainExist(domain)\n .then((isAvailable) =>\n isAvailable\n ? true\n : Promise.reject(new Error(`${name} is already in use`))\n )\n .catch(() => Promise.reject(new Error(`${name} is already in use`)));\n}\n","import * as inquirer from \"inquirer\";\nimport Separator from \"inquirer/lib/objects/separator\";\nimport { Models } from \"@slicemachine/core\";\nimport * as NodeUtils from \"@slicemachine/core/build/node-utils\";\nimport { createRepository } from \"../utils/create-repo\";\nimport { validateRepositoryName } from \"../utils/validateRepositoryName\";\nimport { InitClient, logs } from \"../utils\";\n\nexport const CREATE_REPO = \"$_CREATE_REPO\"; // not a valid domain name\n\nexport function prettyRepoName(address: URL, domain: string): string {\n return `${logs.cyan.dim(`${address.protocol}//`)}${logs.cyan(\n domain\n )}${logs.cyan.dim(`.${address.hostname}`)}`;\n}\n\nexport async function promptForRepoDomain(\n client: InitClient,\n defaultValue?: string\n): Promise<string> {\n const address = new URL(client.apisEndpoints.Wroom);\n\n logs.writeInfo(\n \"The name acts as a domain/endpoint for your content repo and should be completely unique.\"\n );\n\n return inquirer\n .prompt<Record<string, string>>([\n {\n name: \"repoDomain\",\n message: \"Name your Prismic repository\",\n type: \"input\",\n required: true,\n default: defaultValue,\n transformer: (value: string | undefined) =>\n prettyRepoName(address, value || defaultValue || \"repository\"),\n validate: (name: string) => validateRepositoryName(client, name),\n },\n ])\n .then((res) => res.repoDomain);\n}\n\nexport type RepoPrompt = { name: string; value: string; disabled?: string };\n\nexport type PromptOrSeparator = RepoPrompt | Separator;\n\nexport type RepoPrompts = Array<PromptOrSeparator>;\n\nexport function makeReposPretty(base: string) {\n return function ({ name, domain, role }: Models.Repository): RepoPrompt {\n const address = new URL(base);\n address.hostname = `${domain}.${address.hostname}`;\n if (Models.canUpdateCustomTypes(role) === false) {\n return {\n name: `${logs.purple.dim(\"Use\")} ${logs.bold.dim(\n name\n )} ${logs.purple.dim(`\"${address.hostname}\"`)}`,\n value: domain,\n disabled: \"Unauthorized\",\n };\n }\n\n return {\n name: `${logs.purple(\"Use\")} ${logs.bold(name)} ${logs.purple(\n `\"${address.hostname}\"`\n )}`,\n value: domain,\n };\n };\n}\n\nexport function orderPrompts(maybeName?: string | null) {\n return (a: PromptOrSeparator, b: PromptOrSeparator): number => {\n if (a instanceof Separator || b instanceof Separator) return 0;\n if (maybeName && (a.value === maybeName || b.value === maybeName)) return 0;\n if (a.value === CREATE_REPO || b.value === CREATE_REPO) return 0;\n if (a.disabled && !b.disabled) return 1;\n if (!a.disabled && b.disabled) return -1;\n return 0;\n };\n}\n\nexport function maybeStickTheRepoToTheTopOfTheList(repoName?: string | null) {\n return (acc: RepoPrompts, curr: RepoPrompt): RepoPrompts => {\n if (repoName && curr.value === repoName) {\n return [curr, ...acc];\n }\n return [...acc, curr];\n };\n}\n\nexport function sortReposForPrompt(\n repos: Models.Repositories,\n base: string,\n cwd: string\n): RepoPrompts {\n const createNew = {\n name: `${logs.purple(\"Create a\")} ${logs.bold(\"new\")} ${logs.purple(\n \"Repository\"\n )}`,\n value: CREATE_REPO,\n };\n\n const maybeConfiguredRepoName = NodeUtils.maybeRepoNameFromSMFile(cwd, base);\n\n return repos\n .reverse()\n .map(makeReposPretty(base))\n .reduce(maybeStickTheRepoToTheTopOfTheList(maybeConfiguredRepoName), [\n createNew,\n ])\n .sort(orderPrompts(maybeConfiguredRepoName));\n}\n\nexport async function chooseOrCreateARepository(\n client: InitClient,\n cwd: string,\n framework: Models.Frameworks,\n preSelectedRepository?: string\n): Promise<string> {\n const repositories: Models.Repository[] = await client.listRepositories();\n\n const isPreSelectedValid =\n preSelectedRepository &&\n repositories.find(\n (repository) => repository.domain === preSelectedRepository\n );\n if (isPreSelectedValid) return preSelectedRepository;\n\n // No repository to display, ask for a new repository name to create it.\n if (repositories.length === 0) {\n const domainName = await promptForRepoDomain(client, preSelectedRepository);\n await createRepository(client, domainName, framework);\n return domainName;\n }\n\n // prepare the list of repositories to display\n const choices = sortReposForPrompt(\n repositories,\n client.apisEndpoints.Wroom,\n cwd\n );\n const numberOfDisabledRepos = choices.filter((repo) => {\n if (repo instanceof Separator) return false;\n return repo.disabled;\n }).length;\n\n // display the list of repositories and wait for the user to choose one.\n const promptResult = await inquirer.prompt<{ chosenRepository: string }>([\n {\n type: \"list\",\n name: \"chosenRepository\",\n default: 0,\n required: true,\n message: \"Connect a Prismic Repository or create a new one\",\n choices,\n pageSize: numberOfDisabledRepos + 2 <= 7 ? 7 : numberOfDisabledRepos + 2,\n },\n ]);\n\n // If the user has chosen to create a new repository.\n if (promptResult.chosenRepository === CREATE_REPO) {\n const domainName = await promptForRepoDomain(client, preSelectedRepository);\n await createRepository(client, domainName, framework);\n return domainName;\n }\n\n return promptResult.chosenRepository;\n}\n","import { Models } from \"@slicemachine/core\";\nimport * as NodeUtils from \"@slicemachine/core/build/node-utils\";\nimport * as inquirer from \"inquirer\";\nimport { logs } from \"../utils\";\nimport Tracker from \"../utils/tracker\";\n\nexport type FrameworkResult = {\n value: Models.Frameworks;\n manuallyAdded: boolean;\n version?: string;\n};\n\nexport async function promptForFramework(): Promise<FrameworkResult> {\n const choices = Models.SupportedFrameworks.map((framework) => {\n return {\n name: NodeUtils.Framework.fancyName(framework),\n value: framework,\n };\n });\n\n return inquirer\n .prompt<{ framework: Models.Frameworks }>([\n {\n name: \"framework\",\n type: \"list\",\n message: \"Select a framework to use\",\n required: true,\n choices,\n },\n ])\n .then((res) => {\n return {\n value: res.framework,\n manuallyAdded: true,\n version: undefined,\n };\n });\n}\n\nexport async function detectFramework(cwd: string): Promise<FrameworkResult> {\n const failMessage = `Please run ${logs.bold(\n \"npx @slicemachine/init\"\n )} in a Nuxt or Next.js project`;\n\n const spinner = logs.spinner(\n \"Detecting framework to install correct dependencies\"\n );\n\n spinner.start();\n\n try {\n const { framework, version } =\n NodeUtils.Framework.defineFrameworkWithVersion({\n cwd,\n supportedFrameworks: Object.values(Models.Frameworks),\n });\n\n spinner.stop();\n\n if (!framework || framework === Models.Frameworks.vanillajs) {\n logs.writeError(\"Framework not detected\");\n return await promptForFramework();\n }\n\n const nameToPrint = NodeUtils.Framework.fancyName(framework);\n\n if (!NodeUtils.Framework.isFrameworkSupported(framework)) {\n logs.writeError(`${nameToPrint} is currently not supported`);\n console.log(failMessage);\n process.exit(1);\n }\n\n logs.writeCheck(`${nameToPrint} detected`);\n\n return {\n value: framework,\n manuallyAdded: false,\n version,\n };\n } catch (error) {\n spinner.fail(\"package.json not found\");\n\n if (error instanceof Error && error.message) {\n logs.writeError(error.message);\n } else {\n console.log(failMessage);\n }\n await Tracker.get().trackInitEndFail(\n Models.Frameworks.none,\n \"Framework not detected\"\n );\n process.exit(1);\n }\n}\n","import { Models } from \"@slicemachine/core\";\nimport { PrismicSharedConfigManager } from \"@slicemachine/core/build/prismic\";\nimport { logs, Auth, InitClient } from \"../utils\";\n\nexport async function loginOrBypass(\n client: InitClient\n): Promise<Models.UserProfile> {\n const user: Models.UserProfile | null = await client\n .profile()\n .catch(() => null);\n\n if (user) {\n const email = user.email;\n logs.writeCheck(`Logged in as ${logs.bold(email)}`);\n return user;\n }\n\n await Auth.login(client);\n\n // update token used to make calls.\n client.updateAuthenticationToken(PrismicSharedConfigManager.getAuth());\n\n const userAfterLogin: Models.UserProfile = await client.profile();\n return userAfterLogin;\n}\n","import type { Models } from \"@slicemachine/core\";\nimport * as Prismic from \"@slicemachine/core/build/prismic\";\nimport * as NodeUtils from \"@slicemachine/core/build/node-utils\";\nimport { FrameworkResult } from \"./detect-framework\";\nimport { InitClient, logs } from \"../utils\";\nimport Tracker from \"../utils/tracker\";\n\nexport async function configureProject(\n client: InitClient,\n cwd: string,\n repositoryDomainName: string,\n framework: FrameworkResult,\n sliceLibPath: string[] = [],\n tracking = true\n): Promise<void> {\n const frameworkName = NodeUtils.Framework.fancyName(framework.value);\n const spinner = logs.spinner(\n `Configuring your ${frameworkName} and Prismic project...`\n );\n spinner.start();\n\n try {\n const manifest = NodeUtils.retrieveManifest(cwd);\n const manifestAlreadyExistWithContent = manifest.exists && manifest.content;\n\n const libs =\n manifest.content &&\n manifest.content.libraries &&\n manifest.content.libraries.length > 0\n ? manifest.content.libraries\n : [\"@/slices\"];\n\n const manifestUpdated: Models.Manifest = {\n ...(manifestAlreadyExistWithContent ? manifest.content : {}),\n apiEndpoint: Prismic.Endpoints.buildRepositoryEndpoint(\n client.apisEndpoints.Wroom,\n repositoryDomainName\n ),\n libraries: [...libs, ...sliceLibPath], // odd case here for staters\n ...(framework.manuallyAdded ? { framework: framework.value } : {}),\n ...(!tracking ? { tracking } : {}),\n };\n\n if (!manifest.exists) NodeUtils.createManifest(cwd, manifestUpdated);\n else NodeUtils.patchManifest(cwd, manifestUpdated);\n\n // create the default slices folder if it doesn't exist.\n const pathToSlicesFolder = NodeUtils.CustomPaths(cwd)\n .library(\"slices\")\n .value();\n if (\n !NodeUtils.Files.exists(pathToSlicesFolder) &&\n libs.includes(\"@/slices\")\n ) {\n NodeUtils.Files.mkdir(pathToSlicesFolder, { recursive: true });\n }\n\n // add slicemachine script to package.json.\n NodeUtils.addJsonPackageSmScript(cwd);\n\n await Tracker.get().trackInitEndSuccess(framework.value);\n\n spinner.succeed(\"Project configured! Ready to start\");\n } catch (error) {\n await Tracker.get().trackInitEndFail(\n framework.value,\n \"Failed to configure Slice Machine\"\n );\n spinner.fail(\"Failed to configure Slice Machine\");\n process.exit(-1);\n }\n}\n","import { CONSTS } from \"@slicemachine/core\";\nimport * as NodeUtils from \"@slicemachine/core/build/node-utils\";\nimport { logs } from \"../utils\";\n\nexport function displayFinalMessage(\n cwd: string,\n wasStarter: boolean,\n reponame: string,\n base: string\n): void {\n const yarnLock = NodeUtils.Files.exists(NodeUtils.YarnLockPath(cwd));\n const command = `${yarnLock ? \"yarn\" : \"npm\"} run ${CONSTS.SCRIPT_NAME}`;\n console.log();\n\n if (wasStarter) {\n const repoUrl = new URL(base);\n repoUrl.hostname = `${reponame}.${repoUrl.hostname}`;\n const urlAsString = repoUrl.toString();\n\n const message = `${logs.white(\n \"■\"\n )} Start editing your content in Prismic ${logs.purple(urlAsString)}`;\n console.log(message);\n } else {\n console.log(\n `${logs.white(\"■\")} Run ${logs.purple(\n command\n )} to launch Slice Machine and create your first Custom Type`\n );\n }\n}\n","import * as NodeUtils from \"@slicemachine/core/build/node-utils\";\nimport { execCommand } from \"../utils\";\n\nexport type Dependency = string | { name: string; version: string };\nexport const Dependencies = {\n fromPkgFormat(\n pkgDeps: Record<string, string> | undefined\n ): ReadonlyArray<Dependency> | undefined {\n if (!pkgDeps) return;\n\n return Object.entries(pkgDeps).map(([name, version]) => ({\n name,\n version,\n }));\n },\n};\nfunction formatDeps(dependencies: ReadonlyArray<Dependency>): string {\n return dependencies\n .map((dep) => {\n if (typeof dep === \"string\") return dep;\n return `${dep.name}@${dep.version}`;\n })\n .join(\" \");\n}\n\nexport interface PackageManager {\n install(dependencies: ReadonlyArray<Dependency>): Promise<{ stderr: string }>;\n installDev(\n dependencies: ReadonlyArray<Dependency>\n ): Promise<{ stderr: string }>;\n}\n\nexport const PackageManager = {\n get(cwd: string): PackageManager {\n if (NodeUtils.Files.exists(NodeUtils.YarnLockPath(cwd))) {\n return Yarn;\n }\n return Npm;\n },\n};\n\nexport const Yarn: PackageManager = {\n install(\n dependencies: ReadonlyArray<Dependency>\n ): Promise<{ stderr: string }> {\n return execCommand(`yarn add ${formatDeps(dependencies)}`);\n },\n installDev(\n dependencies: ReadonlyArray<Dependency>\n ): Promise<{ stderr: string }> {\n return execCommand(`yarn add --dev ${formatDeps(dependencies)}`);\n },\n};\n\nexport const Npm: PackageManager = {\n install(\n dependencies: ReadonlyArray<Dependency>\n ): Promise<{ stderr: string }> {\n return execCommand(`npm i --save ${formatDeps(dependencies)}`);\n },\n installDev(\n dependencies: ReadonlyArray<Dependency>\n ): Promise<{ stderr: string }> {\n return execCommand(`npm i --save-dev ${formatDeps(dependencies)}`);\n },\n};\n","import { Models } from \"@slicemachine/core\";\nimport * as NodeUtils from \"@slicemachine/core/build/node-utils\";\nimport tmp from \"tmp\";\nimport AdmZip from \"adm-zip\";\nimport fsExtra from \"fs-extra\";\nimport axios from \"axios\";\n\nimport fs from \"fs\";\nimport path from \"path\";\nimport { getOrElseW } from \"fp-ts/Either\";\nimport { PackageManager, Dependencies } from \"../utils/PackageManager\";\nimport Tracker from \"../utils/tracker\";\nimport { logs } from \"../utils\";\n\nconst { PackageJsonHelper } = NodeUtils;\n\nconst downloadFile = async (reqUrl: string): Promise<string> => {\n const res = await axios.get<Buffer>(reqUrl, { responseType: \"arraybuffer\" });\n\n return new Promise((resolve, reject) => {\n if (res.status == 200) {\n const tmpZipFile = tmp.tmpNameSync();\n const zip = new AdmZip(res.data);\n zip.extractAllTo(tmpZipFile);\n resolve(tmpZipFile);\n } else {\n reject();\n }\n });\n};\n\nfunction toGithubSource(githubPath: string, branch: string): string {\n return `https://codeload.github.com/${githubPath}/zip/${branch}`;\n}\n\nexport async function installLib(\n cwd: string,\n libGithubPath: string,\n branch = \"HEAD\"\n): Promise<string[] | undefined> {\n const spinner = logs.spinner(\n `Installing the ${libGithubPath} lib in your project...`\n );\n\n try {\n spinner.start();\n\n const [githubUserName, githubProjectName] = libGithubPath.split(\"/\");\n const source = toGithubSource(libGithubPath, branch);\n\n const zipFilePath = await downloadFile(source);\n const outputFolder = `${githubProjectName}-${branch}`;\n const projectPath = path.join(zipFilePath, outputFolder);\n\n const name = `${githubUserName}-${githubProjectName}`;\n const libDestinationFolder = path.join(cwd, name);\n\n // We should be able to offer the ability to override or not an existing library\n if (fs.existsSync(libDestinationFolder)) {\n spinner.succeed(`Lib \"${libGithubPath}\" was already installed (skipped)`);\n return;\n }\n\n // We copy all the slices into the the user project minus the src folder\n fsExtra.moveSync(path.join(projectPath, \"src\"), libDestinationFolder);\n\n // handle dependencies\n const pkgManager = PackageManager.get(cwd);\n const pkgJson = PackageJsonHelper.fromPath(\n path.join(projectPath, \"package.json\")\n );\n if (pkgJson instanceof Error) throw pkgJson;\n\n const dependencies = Dependencies.fromPkgFormat(pkgJson.dependencies);\n if (dependencies) await pkgManager.install(dependencies);\n\n // generate meta file\n NodeUtils.Files.write(path.join(libDestinationFolder, \"meta.json\"), {\n name: pkgJson.name,\n });\n\n // retrieve all slices lib paths\n const manifest = NodeUtils.Files.readEntity<Error | Models.Manifest>(\n path.join(projectPath, \"sm.json\"),\n (payload: unknown) => {\n return getOrElseW(\n () => new Error(`Unable to parse sm.json from lib ${libGithubPath}`)\n )(Models.Manifest.decode(payload));\n }\n );\n if (manifest instanceof Error) throw manifest;\n\n const localLibs = Models.ManifestHelper.localLibraries(manifest).map(\n ({ path }) => {\n return `~/${name}/${path.replace(\"src/\", \"\")}`;\n }\n );\n\n spinner.succeed(\n `Slice library \"${libGithubPath}\" was installed successfully`\n );\n\n void Tracker.get().trackDownloadLibrary(libGithubPath);\n return localLibs;\n } catch (error) {\n spinner.fail(`Error installing ${libGithubPath} lib!`);\n if (error instanceof Error) {\n console.error(error.message);\n }\n await Tracker.get().trackInitEndFail(\n Models.Frameworks.none,\n \"Failed to install ${libGithubPath} library\"\n );\n process.exit(-1);\n }\n}\n","import inquirer from \"inquirer\";\n\nexport async function promptToPushSlices(): Promise<boolean> {\n return inquirer\n .prompt<{ pushSlices: boolean }>([\n {\n type: \"confirm\",\n name: \"pushSlices\",\n default: false,\n message:\n \"Your repository already contains Slices. Do you want to continue pushing your local Slices?\",\n },\n ])\n .then((res) => res.pushSlices);\n}\n\nexport async function promptToPushCustomTypes(): Promise<boolean> {\n return inquirer\n .prompt<{ pushCustomTypes: boolean }>([\n {\n type: \"confirm\",\n name: \"pushCustomTypes\",\n default: false,\n message:\n \"Your repository already contains Custom Types. Do you want to continue pushing your local Custom Types?\",\n },\n ])\n .then((res) => res.pushCustomTypes);\n}\n","import { InitClient } from \"../../utils\";\nimport {\n Component,\n ComponentInfo,\n VariationSM,\n SliceSM,\n} from \"@slicemachine/core/build/models\";\nimport { Acl, ClientError } from \"@slicemachine/client\";\nimport { writeError } from \"../../utils/logs\";\n\nasync function updateVariationWithScreenshot(\n client: InitClient,\n acl: Acl,\n screenshots: ComponentInfo[\"screenshots\"],\n sliceId: SliceSM[\"id\"],\n variation: VariationSM\n): Promise<VariationSM> {\n const screenshot = screenshots[variation.id];\n if (!screenshot || !screenshot.path) return Promise.resolve(variation);\n\n return client\n .uploadScreenshot({\n acl,\n sliceId,\n variationId: variation.id,\n filePath: screenshot.path,\n })\n .then((screenshotUrl) => {\n return {\n ...variation,\n imageUrl: screenshotUrl,\n };\n })\n .catch((error: ClientError) => {\n writeError(\n `Couldn't upload screenshot slice: ${sliceId} - variation: ${variation.id}`\n );\n writeError(error.message, \"Full error:\");\n return variation;\n });\n}\n\nexport async function updateSlicesWithScreenshots(\n client: InitClient,\n acl: Acl,\n components: Array<Component>\n): Promise<Array<SliceSM>> {\n return Promise.all(\n components.map(async (component) => {\n const { screenshots, model } = component;\n\n const variationsUpdated: VariationSM[] = await Promise.all(\n model.variations.map(async (variation) =>\n updateVariationWithScreenshot(\n client,\n acl,\n screenshots,\n model.id,\n variation\n )\n )\n );\n\n return {\n ...model,\n variations: variationsUpdated,\n };\n })\n );\n}\n","import { Component, Manifest, Slices } from \"@slicemachine/core/build/models\";\nimport { Acl, ClientError } from \"@slicemachine/client\";\nimport { InitClient, logs } from \"../../utils\";\nimport * as Libraries from \"@slicemachine/core/build/libraries\";\nimport { promptToPushSlices } from \"./prompts\";\nimport { updateSlicesWithScreenshots } from \"./s3\";\nimport { writeError } from \"../../utils/logs\";\n\nexport async function sendSlices(\n client: InitClient,\n cwd: string,\n manifest: Manifest\n): Promise<boolean> {\n if (!manifest.libraries) return Promise.resolve(false); // No libraries defined\n\n const libraries = Libraries.libraries(cwd, manifest.libraries);\n const components = libraries.reduce<Array<Component>>((acc, lib) => {\n return [...acc, ...lib.components];\n }, []);\n\n if (components.length === 0) return Promise.resolve(false); // No slices to send found in the libraries\n\n const remoteSlicesIds: string[] = await client\n .getSlices()\n .then((slices) => slices.map((slice) => slice.id));\n\n // If the repository already has Slices, ask the user to confirm.\n if (remoteSlicesIds.length) {\n const pushAnyway = await promptToPushSlices();\n if (pushAnyway === false) return Promise.resolve(true);\n }\n\n const spinner = logs.spinner(\n \"Pushing existing Slice models to your repository\"\n );\n spinner.start();\n\n const acl: Acl | null = await client\n .createAcl()\n .catch((error: ClientError) => {\n writeError(\n \"Uploading screenshots for your slices failed, please contact us.\"\n );\n writeError(error.message, \"Full error:\");\n return null;\n });\n\n // If the acl failed to be created, don't mind the screenshots.\n const models = acl\n ? await updateSlicesWithScreenshots(client, acl, components)\n : components.map((component) => component.model);\n\n await Promise.all(\n models.map(async (model) => {\n const slice = Slices.fromSM(model);\n\n const promise = remoteSlicesIds.includes(slice.id)\n ? client.updateSlice(slice)\n : client.insertSlice(slice);\n\n return promise.catch((error: ClientError) => {\n logs.writeError(`Sending slice ${model.id} - ${error.message}`);\n\n // throwing the error again to stop the Promise.all\n throw error;\n });\n })\n ).catch(() => {\n // the error about the slice that failed to be pushed should be in the terminal already.\n process.exit(1);\n });\n\n spinner.succeed();\n return Promise.resolve(true);\n}\n","import { CustomType } from \"@prismicio/types-internal/lib/customtypes\";\nimport { Files, CustomTypesPaths } from \"@slicemachine/core/build/node-utils\";\nimport { isLeft } from \"fp-ts/lib/Either\";\nimport { promptToPushCustomTypes } from \"./prompts\";\nimport { InitClient, logs } from \"../../utils\";\nimport { ClientError } from \"@slicemachine/client\";\n\nexport function readLocalCustomTypes(cwd: string): Array<CustomType> {\n const customTypePaths = CustomTypesPaths(cwd);\n const dir = customTypePaths.value();\n\n if (Files.isDirectory(dir) === false) return [];\n\n const fileNames = Files.readDirectory(dir);\n\n const files = fileNames.reduce<Array<CustomType>>((acc, fileName) => {\n const filePath = customTypePaths.customType(fileName).model();\n const json = Files.safeReadJson(filePath);\n\n if (!json) return acc;\n\n const file = CustomType.decode(json);\n\n if (file instanceof Error) {\n logs.writeError(`reading ${filePath}: ${file.message}`);\n return acc;\n }\n if (isLeft(file)) {\n logs.writeError(`validating ${filePath}: ${JSON.stringify(file.left)}`);\n return acc;\n }\n\n return [...acc, file.right];\n }, []);\n\n return files;\n}\n\nexport async function sendCustomTypes(client: InitClient, cwd: string) {\n const localCustomTypes = readLocalCustomTypes(cwd);\n\n // nothing to push\n if (localCustomTypes.length === 0) return Promise.resolve(false);\n\n const remoteCustomTypeIds = await client\n .getCustomTypes()\n .then((customTypes) => customTypes.map((customType) => customType.id));\n\n if (remoteCustomTypeIds.length) {\n const shouldPush = await promptToPushCustomTypes();\n if (shouldPush === false) return Promise.resolve(false);\n }\n\n const spinner = logs.spinner(\n \"Pushing existing custom types to your repository\"\n );\n spinner.start();\n\n await Promise.all(\n localCustomTypes.map(async (customType) => {\n const promise = remoteCustomTypeIds.includes(customType.id)\n ? client.updateCustomType(customType)\n : client.insertCustomType(customType);\n\n return promise.catch((error: ClientError) => {\n logs.writeError(\n `Sending custom type ${customType.id} - ${error.message}`\n );\n\n // throwing the error again to stop the Promise.all\n throw error;\n });\n })\n ).catch(() => {\n // the error about the custom type that failed to be pushed should be in the terminal already.\n process.exit(1);\n });\n\n spinner.succeed();\n return Promise.resolve(true);\n}\n","import path from \"path\";\nimport fs from \"fs\";\nimport type { AxiosError } from \"axios\";\nimport { Models } from \"@slicemachine/core\";\n\nimport * as t from \"io-ts\";\nimport { getOrElseW } from \"fp-ts/Either\";\nimport { InitClient, logs, lsdir, lsfiles } from \"../../utils\";\nimport { PrismicSharedConfigManager } from \"@slicemachine/core/build/prismic/SharedConfig\";\nimport Tracker from \"../../utils/tracker\";\n\nconst SignatureFileReader = t.type({\n signature: t.string,\n});\n\ntype SignatureFile = t.TypeOf<typeof SignatureFileReader>;\n\nexport async function readSignatureFile(cwd: string): Promise<SignatureFile> {\n const pathToFile = path.join(cwd, \"documents\", \"index.json\");\n return fs.promises.readFile(pathToFile, \"utf-8\").then((res) => {\n const data = JSON.parse(res) as unknown;\n return getOrElseW(() => {\n throw new Error(\"Unable to read document signature file\");\n })(SignatureFileReader.decode(data));\n });\n}\n\nexport async function readDocuments(\n cwd: string\n): Promise<Record<string, unknown>> {\n const documentDir = path.join(cwd, \"documents\");\n const dirs = await lsdir(documentDir);\n\n const files = (await Promise.all(dirs.map((dir) => lsfiles(dir)))).flat();\n\n const documentObj = files.reduce<Record<string, unknown>>((acc, file) => {\n const filename: string = path.parse(file).name;\n const fileContent: string = fs.readFileSync(file, \"utf-8\");\n const json = JSON.parse(fileContent) as Record<string, unknown>;\n\n return { ...acc, [filename]: json };\n }, {});\n\n return documentObj;\n}\n\nexport async function sendDocuments(\n client: InitClient,\n cwd: string\n): Promise<boolean> {\n const pathToDocuments = path.join(cwd, \"documents\");\n const pathToSignatureFile = path.join(pathToDocuments, \"index.json\");\n\n // Without the signature, we can't push documents to Prismic.\n if (!fs.existsSync(pathToSignatureFile)) return Promise.resolve(false);\n\n const signatureObj = await readSignatureFile(cwd);\n const documents: Record<string, unknown> = await readDocuments(cwd);\n\n // No documents to push\n if (Object.keys(documents).length === 0) return Promise.resolve(false);\n\n const spinner = logs.spinner(\"Pushing existing documents to your repository\");\n spinner.start();\n\n return client\n .pushDocuments(\n signatureObj.signature,\n documents,\n PrismicSharedConfigManager.get().cookies\n )\n .then(() => {\n spinner.succeed();\n fs.rmSync(pathToDocuments, { recursive: true, force: true });\n return true;\n })\n .catch(async (e: AxiosError) => {\n spinner.fail();\n if (e.response?.data === \"Repository should not contain documents\") {\n logs.writeError(\n \"The selected repository is not empty, documents cannot be uploaded. Please choose an empty repository or delete the documents contained in your repository.\"\n );\n } else {\n logs.writeError(\n \"Sending documents failed, please try again. If the problem persists, contact us.\"\n );\n logs.writeError(`Full error: ${e.code || 500} - ${e.message}`);\n }\n await Tracker.get().trackInitEndFail(\n Models.Frameworks.none,\n \"Failed to push documents\"\n );\n process.exit(1);\n });\n}\n","import { retrieveManifest, Files } from \"@slicemachine/core/build/node-utils\";\nimport path from \"path\";\nimport fs from \"fs\";\nimport { sendSlices } from \"./starters/slices\";\nimport { sendCustomTypes } from \"./starters/custom-types\";\nimport { sendDocuments } from \"./starters/documents\";\nimport { InitClient } from \"../utils\";\n\nexport async function sendStarterData(\n client: InitClient,\n cwd: string,\n pushDocuments = true\n) {\n const manifest = retrieveManifest(cwd);\n const documentsPath = path.join(cwd, \"documents\");\n const hasDocuments = Files.exists(documentsPath);\n\n if (manifest.exists === false || hasDocuments === false)\n return Promise.resolve(false);\n\n if (manifest.content) await sendSlices(client, cwd, manifest.content);\n await sendCustomTypes(client, cwd);\n\n // If the user choose not to push documents, we still delete the documents folder.\n if (!pushDocuments) {\n fs.rmSync(documentsPath, { recursive: true, force: true });\n return Promise.resolve(true);\n }\n\n return sendDocuments(client, cwd);\n}\n","import { CONSTS } from \"@slicemachine/core\";\nimport * as NodeUtils from \"@slicemachine/core/build/node-utils\";\nimport { logs } from \"../utils\";\n\nconst defaultSliceMachineVersion = \"0.0.41\";\n\nconst getTheSliceMachineVersionInstalled = (\n packageJson: NodeUtils.FileContent<NodeUtils.JsonPackage>\n) => {\n const sliceMachinePackageInstalled = Object.entries(\n packageJson.content?.devDependencies || {}\n ).find((devDependency) => {\n if (devDependency[0] === CONSTS.SM_PACKAGE_NAME) {\n return devDependency;\n }\n });\n\n if (!sliceMachinePackageInstalled) {\n return defaultSliceMachineVersion;\n }\n\n const extractedVersion = extractVersionNumberFromSemver(\n sliceMachinePackageInstalled[1]\n );\n\n if (!extractedVersion) {\n return defaultSliceMachineVersion;\n }\n\n return extractedVersion;\n};\n\nconst extractVersionNumberFromSemver = (semver: string) => {\n const versionFound = semver.match(/\\d+\\.\\d+\\.\\d+/);\n\n if (versionFound && versionFound.length > 0) {\n return versionFound[0];\n }\n\n return null;\n};\n\nexport function setVersion(cwd: string): void {\n try {\n const manifest = NodeUtils.retrieveManifest(cwd);\n\n if (manifest.content?._latest) {\n return;\n }\n\n const packageJson = NodeUtils.retrieveJsonPackage(cwd);\n const sliceMachineVersionInstalled =\n getTheSliceMachineVersionInstalled(packageJson);\n\n NodeUtils.patchManifest(cwd, { _latest: sliceMachineVersionInstalled });\n } catch {\n logs.warning(\n \"Could not set _latest to installed slice-machine-ui version in sm.json\"\n );\n }\n}\n","import { ApplicationMode } from \"@slicemachine/client\";\nimport Prismic from \"@slicemachine/core/build/prismic\";\nimport Tracker from \"./utils/tracker\";\nimport {\n installRequiredDependencies,\n validatePkg,\n chooseOrCreateARepository,\n loginOrBypass,\n configureProject,\n displayFinalMessage,\n detectFramework,\n installLib,\n sendStarterData,\n setVersion,\n} from \"./steps\";\nimport {\n findArgument,\n findFlag,\n logs,\n getApplicationMode,\n InitClient,\n} from \"./utils\";\nimport { Models } from \"@slicemachine/core\";\n\nasync function init() {\n const cwd = findArgument(process.argv, \"cwd\") || process.cwd();\n const mode: ApplicationMode =\n getApplicationMode(findArgument(process.argv, \"mode\")) ||\n ApplicationMode.PROD;\n const lib: string | undefined = findArgument(process.argv, \"library\");\n const branch: string | undefined = findArgument(process.argv, \"branch\");\n const isTrackingAvailable: boolean =\n findArgument(process.argv, \"tracking\") !== \"false\";\n const preSelectedRepository: string | undefined = findArgument(\n process.argv,\n \"repository\"\n );\n const pushDocuments = !findFlag(process.argv, \"no-docs\");\n\n Tracker.get().initialize(\n process.env.PUBLIC_SM_INIT_SEGMENT_KEY ||\n \"JfTfmHaATChc4xueS7RcCBsixI71dJIJ\",\n isTrackingAvailable\n );\n\n void Tracker.get().trackInitStart(preSelectedRepository);\n\n // initializing the client with what we have for now.\n const client = new InitClient(\n mode,\n null,\n Prismic.PrismicSharedConfigManager.getAuth()\n );\n\n console.log(\n logs.purple(\n \"You're about to configure Slicemachine... Press ctrl + C to cancel\"\n )\n );\n\n // verify package.json file exist\n validatePkg(cwd);\n\n const user = await loginOrBypass(client);\n\n Tracker.get().identifyUser(user.shortId, user.intercomHash);\n void Tracker.get().trackInitIdentify();\n\n // detect the framework used by the project\n const frameworkResult = await detectFramework(cwd);\n\n // select the repository used with the project.\n const repository = await chooseOrCreateARepository(\n client,\n cwd,\n frameworkResult.value,\n preSelectedRepository\n );\n\n Tracker.get().setRepository(repository);\n client.updateRepository(repository);\n\n const sliceLibPath = lib ? await installLib(cwd, lib, branch) : undefined;\n\n const wasStarter = await sendStarterData(client, cwd, pushDocuments); // will be false if no sm.json is found\n\n // configure the SM.json file and the json package file of the project..\n await configureProject(\n client,\n cwd,\n repository,\n frameworkResult,\n sliceLibPath,\n isTrackingAvailable\n );\n\n // Install the required dependencies in the project.\n await installRequiredDependencies(\n cwd,\n frameworkResult.value,\n wasStarter,\n frameworkResult.version\n );\n\n setVersion(cwd);\n\n // Ask the user to run slice-machine.\n displayFinalMessage(cwd, wasStarter, repository, client.apisEndpoints.Wroom);\n}\n\ninit()\n .then(() => {\n process.exit(0);\n })\n .catch(async (error) => {\n if (error instanceof Error) logs.writeError(error.message);\n else console.error(error);\n await Tracker.get().trackInitEndFail(\n Models.Frameworks.none,\n \"Failed to initialise Slice Machine.\"\n );\n });\n"],"names":["uuidv4","ServerAnalytics","chalk","underline","bold","spinner","ora","writeError","Utils","CONSTS","hapi","PrismicSharedConfigManager","open","Endpoints","Client","getAndValidateResponse","t","Models","parse","fs","path","debug","MAX_LENGTH","MAX_SAFE_INTEGER","require$$0","require$$1","parseOptions","compareIdentifiers","re","require$$2","require$$3","require$$4","SemVer","Yallist","compare","eq","neq","gt","gte","lt","lte","require$$5","cmp","Comparator","Range","semverCoerce","semverSatisfies","util","exec","ApplicationMode","NodeUtils","logs.spinner","logs.writeWarning","logs.writeError","logs.bold","logs.cyan","logs.writeInfo","inquirer","logs.purple","Separator","logs.writeCheck","Prismic","logs.white","axios","tmp","AdmZip","fsExtra","getOrElseW","Libraries","models","Slices","CustomTypesPaths","Files","CustomType","isLeft","retrieveManifest","logs.warning","client"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/utils/tracker.ts","../src/utils/logs.ts","../src/utils/auth/helpers.ts","../src/utils/auth/index.ts","../src/utils/client.ts","../src/utils/fs.ts","../node_modules/semver/internal/debug.js","../node_modules/semver/internal/constants.js","../node_modules/semver/internal/re.js","../node_modules/semver/internal/parse-options.js","../node_modules/semver/internal/identifiers.js","../node_modules/semver/classes/semver.js","../node_modules/semver/functions/parse.js","../node_modules/semver/functions/coerce.js","../node_modules/semver/node_modules/yallist/iterator.js","../node_modules/semver/node_modules/yallist/yallist.js","../node_modules/semver/node_modules/lru-cache/index.js","../node_modules/semver/functions/compare.js","../node_modules/semver/functions/eq.js","../node_modules/semver/functions/neq.js","../node_modules/semver/functions/gt.js","../node_modules/semver/functions/gte.js","../node_modules/semver/functions/lt.js","../node_modules/semver/functions/lte.js","../node_modules/semver/functions/cmp.js","../node_modules/semver/classes/comparator.js","../node_modules/semver/classes/range.js","../node_modules/semver/functions/satisfies.js","../src/utils/versionCheck.ts","../src/utils/index.ts","../src/steps/install-required-dependencies.ts","../src/steps/validate-pkg.ts","../src/utils/create-repo.ts","../src/utils/validateRepositoryName.ts","../src/steps/choose-or-create-a-repository.ts","../src/steps/detect-framework.ts","../src/steps/loginOrBypass.ts","../src/steps/configure-project.ts","../src/steps/display-final-message.ts","../src/utils/PackageManager.ts","../src/steps/install-lib.ts","../src/steps/starters/prompts.ts","../src/steps/starters/s3.ts","../src/steps/starters/slices.ts","../src/steps/starters/custom-types.ts","../src/steps/starters/documents.ts","../src/steps/sendStarterData.ts","../src/steps/set-version.ts","../src/index.ts"],"sourcesContent":["import ServerAnalytics from \"analytics-node\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { Models } from \"@slicemachine/core\";\n\nexport enum EventType {\n DownloadLibrary = \"SliceMachine Download Library\",\n InitStart = \"SliceMachine Init Start\",\n InitIdentify = \"SliceMachine Init Identify\",\n InitEnd = \"SliceMachine Init End\",\n}\n\ntype SegmentIdentifier = { userId: string } | { anonymousId: string };\n\nexport class InitTracker {\n #client: ServerAnalytics | null = null;\n #isTrackingActive = true;\n #anonymousId = \"\";\n #userId: string | null = null;\n #repository: string | null = null;\n\n initialize(segmentKey: string, isTrackingActive = true): void {\n try {\n // The initialize method cannot be used for changing some class properties\n if (!!this.#client) return;\n\n this.#isTrackingActive = isTrackingActive;\n this.#anonymousId = uuidv4();\n this.#client = new ServerAnalytics(segmentKey);\n } catch (error) {\n // If the client is not correctly setup we are silently failing as the tracker is not a critical feature\n }\n }\n\n /** Private methods **/\n\n _trackEvent(\n eventType: EventType,\n attributes: Record<string, unknown> = {}\n ): Promise<void> {\n return new Promise((resolve) => {\n if (!this._isTrackingPossible(this.#client)) {\n return resolve();\n }\n\n const identifier = this._createSegmentIdentifier();\n const payload = {\n event: eventType,\n ...identifier,\n properties: attributes,\n ...(this.#repository\n ? { context: { groupId: { Repository: this.#repository } } }\n : {}),\n };\n\n return this.#client.track(payload, () => {\n // if(_) return reject(_)\n return resolve();\n });\n });\n }\n\n _identifyEvent(userId: string, intercomHash: string): void {\n if (!this._isTrackingPossible(this.#client)) {\n return;\n }\n\n try {\n this.#client.identify({\n userId,\n anonymousId: this.#anonymousId,\n integrations: {\n Intercom: {\n user_hash: intercomHash,\n },\n },\n });\n } catch {\n // If the client is not correctly setup we are silently failing as the tracker is not a critical feature\n }\n }\n\n _isTrackingPossible(\n client: ServerAnalytics | null\n ): client is ServerAnalytics {\n return !!client && this.#isTrackingActive;\n }\n\n _createSegmentIdentifier(): SegmentIdentifier {\n return !!this.#userId\n ? { userId: this.#userId }\n : { anonymousId: this.#anonymousId };\n }\n\n /** Public methods **/\n\n setRepository(repository: string) {\n this.#repository = repository;\n }\n\n identifyUser(userId: string, intercomHash: string): void {\n this.#userId = userId;\n return this._identifyEvent(userId, intercomHash);\n }\n\n trackDownloadLibrary(library: string): Promise<void> {\n return this._trackEvent(EventType.DownloadLibrary, { library });\n }\n\n trackInitIdentify(): Promise<void> {\n return this._trackEvent(EventType.InitIdentify);\n }\n\n trackInitStart(repoDomain: string | undefined): Promise<void> {\n if (repoDomain) this.setRepository(repoDomain);\n return this._trackEvent(EventType.InitStart, { repo: repoDomain });\n }\n\n trackInitEndSuccess(framework: Models.Frameworks): Promise<void> {\n return this._trackEvent(EventType.InitEnd, {\n framework,\n repo: this.#repository,\n result: \"success\",\n });\n }\n\n trackInitEndFail(framework: Models.Frameworks, error: string): Promise<void> {\n return this._trackEvent(EventType.InitEnd, {\n framework,\n repo: this.#repository,\n result: \"error\",\n error,\n });\n }\n}\n\nconst Tracker = (() => {\n let smTrackerInstance: InitTracker;\n\n const init = () => new InitTracker();\n\n return {\n get() {\n if (!smTrackerInstance) smTrackerInstance = init();\n return smTrackerInstance;\n },\n };\n})();\n\nexport default Tracker;\n","import chalk from \"chalk\";\nimport ora from \"ora\";\n\nexport const purple = chalk.hex(\"8c76fc\");\nexport const error = chalk.hex(\"FF6868\");\nexport const warning = chalk.hex(\"F3AD38\");\nexport const underline = chalk.underline;\nexport const bold = chalk.bold;\nexport const dim = chalk.dim;\nexport const cyan = chalk.cyan;\nexport const yellow = chalk.yellow;\nexport const white = chalk.white;\n\nexport const spinner = ora;\n\nexport const writeError = (msg: string, prefix = \"Error!\"): void =>\n console.error(`${error(prefix)} ${msg}`);\n\nexport const writeWarning = (msg: string, prefix = \"Warning!\"): void =>\n console.warn(`${warning(prefix)} ${msg}`);\n\nexport const writeCheck = (msg: string): void => {\n ora().succeed(msg); // using the same check as Ora for coherence\n};\n\nexport const writeInfo = (msg: string): void => {\n console.log(`${yellow(\"ℹ\")} ${dim(msg)}`);\n};\n","import * as hapi from \"@hapi/hapi\";\nimport open from \"open\";\nimport * as logs from \"../logs\";\nimport { Utils, CONSTS } from \"@slicemachine/core\";\nimport { PrismicSharedConfigManager } from \"@slicemachine/core/build/prismic\";\n\nconst { Cookie } = Utils;\nconst { DEFAULT_BASE, DEFAULT_SERVER_PORT } = CONSTS;\n\nconst { bold, underline, spinner, writeError } = logs;\n\nexport type HandlerData = { email: string; cookies: ReadonlyArray<string> };\n\nexport const isHandlerData = (\n data: string | Record<string, unknown>\n): data is HandlerData => {\n if (typeof data != \"object\") return false;\n\n const { email, cookies } = data as Partial<HandlerData>;\n return (\n Boolean(email && cookies) &&\n Array.isArray(cookies) &&\n !cookies.some((c: unknown) => typeof c !== \"string\")\n );\n};\n\nconst Routes = {\n authentication:\n (server: hapi.Server) =>\n (\n onSuccess: (data: HandlerData) => void,\n onFail: () => void\n ): hapi.ServerRoute => ({\n method: \"POST\",\n path: \"/\",\n handler: authenticationHandler(server)(onSuccess, onFail),\n }),\n\n notFound: {\n method: [\"GET\", \"POST\"],\n path: \"/{any*}\",\n handler: (\n request: hapi.Request,\n h: hapi.ResponseToolkit\n ): hapi.ResponseObject => {\n return h\n .response(`not found: [${request.method}]: ${request.url.toString()}`)\n .code(404);\n },\n },\n};\n\nexport function validatePayload(\n payload: Buffer | string | Record<string, unknown>\n): HandlerData | null {\n if (Buffer.isBuffer(payload)) return null;\n return isHandlerData(payload) ? payload : null;\n}\n\nconst authenticationHandler =\n (server: hapi.Server) =>\n (onSuccess: (data: HandlerData) => void, onFail: () => void) => {\n return (request: hapi.Request, h: hapi.ResponseToolkit) => {\n try {\n const data: HandlerData | null = validatePayload(\n request.payload as Buffer | string | Record<string, unknown>\n ); // type coming from the lib\n\n if (!data) {\n onFail();\n h.response(\"Error with cookies\").code(400);\n throw new Error(\n \"It seems the server didn't respond properly, please contact us.\"\n );\n }\n onSuccess(data);\n return h.response(data).code(200);\n } finally {\n void server.stop({ timeout: 10000 });\n }\n };\n };\n\nfunction stripTrailingSlash(str: string) {\n return str.endsWith(\"/\") ? str.slice(0, -1) : str;\n}\n\nfunction buildServer(base: string, port: number, host: string): hapi.Server {\n const server = hapi.server({\n port,\n host,\n routes: {\n cors: {\n origin: [stripTrailingSlash(base)],\n headers: [\"Origin\", \"X-Requested-With\", \"Content-Type\", \"Accept\"],\n },\n },\n });\n return server;\n}\n\nexport function askSingleChar(title: string): Promise<string> {\n return new Promise((resolve) => {\n process.stdout.write(title);\n const rawMode: boolean = process.stdin.isRaw;\n if (process.stdin.setRawMode) process.stdin.setRawMode(true);\n\n function handler(key: Buffer) {\n const response: string = key.toString(\"utf-8\");\n if (process.stdin.setRawMode) process.stdin.setRawMode(Boolean(rawMode));\n process.stdin.removeListener(\"data\", handler);\n resolve(response);\n }\n\n process.stdin.on(\"data\", handler);\n });\n}\n\nexport async function startServerAndOpenBrowser(\n url: string,\n action: \"login\" | \"signup\",\n base: string = DEFAULT_BASE,\n port: number = DEFAULT_SERVER_PORT\n): Promise<{\n onLoginFail: () => void;\n}> {\n const confirmation = await askSingleChar(\n `>> Press any key to open the browser to ${action} or q to exit:`\n );\n if (confirmation === \"q\" || confirmation === \"\\u0003\")\n return process.exit(-1);\n\n const s = spinner(\"Waiting for the browser response\");\n\n const onLoginFail = () => {\n s.stop();\n writeError(`We failed to log you into your Prismic account`);\n console.log(`Run ${bold(\"npx slicemachine init\")} again!`);\n process.exit(-1);\n };\n\n function onSuccess(data: HandlerData) {\n s.succeed(`Logged in as ${bold(data.email)}`).stop();\n PrismicSharedConfigManager.setProperties({\n cookies: Cookie.serializeCookies(data.cookies),\n base,\n });\n }\n\n function onFail(): void {\n onLoginFail();\n }\n\n const server = buildServer(base, port, \"localhost\");\n server.route([\n Routes.authentication(server)(onSuccess, onFail),\n Routes.notFound,\n ]);\n\n return server.start().then(() => {\n console.log(\"\\nOpening browser to \" + underline(url));\n s.start();\n void open(url);\n return {\n onLoginFail,\n };\n });\n}\n","import { Utils } from \"@slicemachine/core\";\nimport { startServerAndOpenBrowser } from \"./helpers\";\nimport {\n Endpoints,\n PrismicSharedConfigManager,\n} from \"@slicemachine/core/build/prismic\";\nimport { InitClient } from \"../client\";\n\nasync function startAuth({\n client,\n url,\n action,\n}: {\n client: InitClient;\n url: string;\n action: \"signup\" | \"login\";\n}): Promise<void> {\n const { onLoginFail } = await startServerAndOpenBrowser(\n url,\n action,\n client.apisEndpoints.Wroom\n );\n try {\n // We wait 3 minutes before timeout\n await Utils.Poll.startPolling<boolean, boolean>(\n () => Auth.validateSession(client),\n (isSessionValid): isSessionValid is boolean => isSessionValid == true,\n 3000,\n 60\n );\n return;\n } catch (e) {\n onLoginFail();\n }\n}\n\nexport const Auth = {\n login: async (client: InitClient): Promise<void> => {\n const endpoints = Endpoints.buildEndpoints(client.apisEndpoints.Wroom);\n return startAuth({\n client,\n url: endpoints.Dashboard.cliLogin,\n action: \"login\",\n });\n },\n validateSession: async (client: InitClient): Promise<boolean> => {\n const authToken = PrismicSharedConfigManager.getAuth();\n\n // verify token is by retrieving the profile, update the config if need be.\n return client\n .updateAuthenticationToken(authToken)\n .profile()\n .then((userProfile) => {\n // settings shortId and IntercomHash as we switch between dev and prod.\n PrismicSharedConfigManager.setProperties({\n shortId: userProfile.shortId,\n intercomHash: userProfile.intercomHash,\n });\n return true;\n })\n .catch(() => false);\n },\n};\n","import * as t from \"io-ts\";\nimport { Models } from \"@slicemachine/core\";\nimport { PrismicSharedConfigManager } from \"@slicemachine/core/build/prismic\";\nimport { Client, getAndValidateResponse } from \"@slicemachine/client\";\nimport { parse } from \"@slicemachine/core/build/utils/cookie\";\n\nexport class InitClient extends Client {\n async listRepositories(): Promise<Models.Repository[]> {\n return getAndValidateResponse<Models.Repository[]>(\n this._get(`${this.apisEndpoints.Users}repositories`),\n \"repository list\",\n t.array(Models.Repository)\n );\n }\n\n async createRepository(\n domain: string,\n framework: Models.Frameworks\n ): Promise<string> {\n const data = {\n domain,\n framework,\n plan: \"personal\",\n isAnnual: \"false\",\n role: \"developer\",\n };\n\n return this._fetch({\n method: \"post\",\n url: `${this.apisEndpoints.Wroom}authentication/newrepository?app=slicemachine`,\n data: data,\n headers: {\n Cookie: PrismicSharedConfigManager.get().cookies,\n \"User-Agent\": \"prismic-cli/sm\", // special user agent just for this route.\n },\n }).then(() => domain);\n }\n\n async deleteRepository(\n domain: string,\n password: string,\n cookies: string\n ): Promise<string> {\n const repositoryDirectUrl = new URL(this.apisEndpoints.Wroom);\n repositoryDirectUrl.hostname = `${domain}.${repositoryDirectUrl.hostname}`;\n\n const token = parse(cookies).X_XSRF;\n\n return this._fetch({\n method: \"post\",\n url: `${repositoryDirectUrl.toString()}app/settings/delete?_=${token}`,\n data: { confirm: domain, password },\n headers: {\n Cookie: cookies,\n \"User-Agent\": \"prismic-cli/0\", // special user agent just for this route.\n },\n }).then(() => domain);\n }\n\n async domainExist(domain: string): Promise<boolean> {\n return getAndValidateResponse<boolean>(\n this._get(\n `${this.apisEndpoints.Wroom}app/dashboard/repositories/${domain}/exists`\n ),\n \"repository exists\",\n t.boolean\n );\n }\n\n async pushDocuments(\n signature: string,\n documents: Record<string, unknown>,\n cookies: string\n ) {\n if (!this.repository) throw new Error(\"Repository undefined in the client\");\n const repositoryDirectUrl = new URL(this.apisEndpoints.Wroom);\n repositoryDirectUrl.hostname = `${this.repository}.${repositoryDirectUrl.hostname}`;\n\n return this._fetch({\n method: \"post\",\n url: `${repositoryDirectUrl.toString()}starter/documents`,\n data: { signature, documents: JSON.stringify(documents) },\n headers: {\n Cookie: cookies,\n \"User-Agent\": \"prismic-cli/0\", // special user agent just for this route.\n },\n });\n }\n}\n","import fs from \"fs\";\nimport path from \"path\";\n\nexport async function lsdir(dir: string): Promise<Array<string>> {\n return fs.promises.readdir(dir).then((dirs) => {\n return dirs\n .filter((name) => fs.statSync(path.join(dir, name)).isDirectory())\n .map((subdirectory) => path.join(dir, subdirectory));\n });\n}\n\nexport async function lsfiles(dir: string): Promise<Array<string>> {\n return fs.promises.readdir(dir).then((dirs) => {\n return dirs\n .filter((name) => fs.statSync(path.join(dir, name)).isFile())\n .map((file) => path.join(dir, file));\n });\n}\n","const debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\nmodule.exports = {\n SEMVER_SPEC_VERSION,\n MAX_LENGTH,\n MAX_SAFE_INTEGER,\n MAX_SAFE_COMPONENT_LENGTH,\n}\n","const { MAX_SAFE_COMPONENT_LENGTH } = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst src = exports.src = []\nconst t = exports.t = {}\nlet R = 0\n\nconst createToken = (name, value, isGlobal) => {\n const index = R++\n debug(name, index, value)\n t[name] = index\n src[index] = value\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '[0-9]+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', '\\\\d*[a-zA-Z-][a-zA-Z0-9-]*')\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+')\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCE', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n","// parse out just the options we care about so we always get a consistent\n// obj with keys in a consistent order.\nconst opts = ['includePrerelease', 'loose', 'rtl']\nconst parseOptions = options =>\n !options ? {}\n : typeof options !== 'object' ? { loose: true }\n : opts.filter(k => options[k]).reduce((o, k) => {\n o[k] = true\n return o\n }, {})\nmodule.exports = parseOptions\n","const numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers,\n}\n","const debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return (\n compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n )\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.format()\n this.raw = this.version\n return this\n }\n}\n\nmodule.exports = SemVer\n","const { MAX_LENGTH } = require('../internal/constants')\nconst { re, t } = require('../internal/re')\nconst SemVer = require('../classes/semver')\n\nconst parseOptions = require('../internal/parse-options')\nconst parse = (version, options) => {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n const r = options.loose ? re[t.LOOSE] : re[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nmodule.exports = parse\n","const SemVer = require('../classes/semver')\nconst parse = require('./parse')\nconst { re, t } = require('../internal/re')\n\nconst coerce = (version, options) => {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n let match = null\n if (!options.rtl) {\n match = version.match(re[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n let next\n while ((next = re[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n re[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n return parse(`${match[2]}.${match[3] || '0'}.${match[4] || '0'}`, options)\n}\nmodule.exports = coerce\n","'use strict'\nmodule.exports = function (Yallist) {\n Yallist.prototype[Symbol.iterator] = function* () {\n for (let walker = this.head; walker; walker = walker.next) {\n yield walker.value\n }\n }\n}\n","'use strict'\nmodule.exports = Yallist\n\nYallist.Node = Node\nYallist.create = Yallist\n\nfunction Yallist (list) {\n var self = this\n if (!(self instanceof Yallist)) {\n self = new Yallist()\n }\n\n self.tail = null\n self.head = null\n self.length = 0\n\n if (list && typeof list.forEach === 'function') {\n list.forEach(function (item) {\n self.push(item)\n })\n } else if (arguments.length > 0) {\n for (var i = 0, l = arguments.length; i < l; i++) {\n self.push(arguments[i])\n }\n }\n\n return self\n}\n\nYallist.prototype.removeNode = function (node) {\n if (node.list !== this) {\n throw new Error('removing node which does not belong to this list')\n }\n\n var next = node.next\n var prev = node.prev\n\n if (next) {\n next.prev = prev\n }\n\n if (prev) {\n prev.next = next\n }\n\n if (node === this.head) {\n this.head = next\n }\n if (node === this.tail) {\n this.tail = prev\n }\n\n node.list.length--\n node.next = null\n node.prev = null\n node.list = null\n\n return next\n}\n\nYallist.prototype.unshiftNode = function (node) {\n if (node === this.head) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var head = this.head\n node.list = this\n node.next = head\n if (head) {\n head.prev = node\n }\n\n this.head = node\n if (!this.tail) {\n this.tail = node\n }\n this.length++\n}\n\nYallist.prototype.pushNode = function (node) {\n if (node === this.tail) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var tail = this.tail\n node.list = this\n node.prev = tail\n if (tail) {\n tail.next = node\n }\n\n this.tail = node\n if (!this.head) {\n this.head = node\n }\n this.length++\n}\n\nYallist.prototype.push = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n push(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.unshift = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n unshift(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.pop = function () {\n if (!this.tail) {\n return undefined\n }\n\n var res = this.tail.value\n this.tail = this.tail.prev\n if (this.tail) {\n this.tail.next = null\n } else {\n this.head = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.shift = function () {\n if (!this.head) {\n return undefined\n }\n\n var res = this.head.value\n this.head = this.head.next\n if (this.head) {\n this.head.prev = null\n } else {\n this.tail = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.forEach = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.head, i = 0; walker !== null; i++) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.next\n }\n}\n\nYallist.prototype.forEachReverse = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.prev\n }\n}\n\nYallist.prototype.get = function (n) {\n for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.next\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.getReverse = function (n) {\n for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.prev\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.map = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.head; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.next\n }\n return res\n}\n\nYallist.prototype.mapReverse = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.tail; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.prev\n }\n return res\n}\n\nYallist.prototype.reduce = function (fn, initial) {\n var acc\n var walker = this.head\n if (arguments.length > 1) {\n acc = initial\n } else if (this.head) {\n walker = this.head.next\n acc = this.head.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = 0; walker !== null; i++) {\n acc = fn(acc, walker.value, i)\n walker = walker.next\n }\n\n return acc\n}\n\nYallist.prototype.reduceReverse = function (fn, initial) {\n var acc\n var walker = this.tail\n if (arguments.length > 1) {\n acc = initial\n } else if (this.tail) {\n walker = this.tail.prev\n acc = this.tail.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = this.length - 1; walker !== null; i--) {\n acc = fn(acc, walker.value, i)\n walker = walker.prev\n }\n\n return acc\n}\n\nYallist.prototype.toArray = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.head; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.next\n }\n return arr\n}\n\nYallist.prototype.toArrayReverse = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.tail; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.prev\n }\n return arr\n}\n\nYallist.prototype.slice = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n walker = walker.next\n }\n for (; walker !== null && i < to; i++, walker = walker.next) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.sliceReverse = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n walker = walker.prev\n }\n for (; walker !== null && i > from; i--, walker = walker.prev) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.splice = function (start, deleteCount, ...nodes) {\n if (start > this.length) {\n start = this.length - 1\n }\n if (start < 0) {\n start = this.length + start;\n }\n\n for (var i = 0, walker = this.head; walker !== null && i < start; i++) {\n walker = walker.next\n }\n\n var ret = []\n for (var i = 0; walker && i < deleteCount; i++) {\n ret.push(walker.value)\n walker = this.removeNode(walker)\n }\n if (walker === null) {\n walker = this.tail\n }\n\n if (walker !== this.head && walker !== this.tail) {\n walker = walker.prev\n }\n\n for (var i = 0; i < nodes.length; i++) {\n walker = insert(this, walker, nodes[i])\n }\n return ret;\n}\n\nYallist.prototype.reverse = function () {\n var head = this.head\n var tail = this.tail\n for (var walker = head; walker !== null; walker = walker.prev) {\n var p = walker.prev\n walker.prev = walker.next\n walker.next = p\n }\n this.head = tail\n this.tail = head\n return this\n}\n\nfunction insert (self, node, value) {\n var inserted = node === self.head ?\n new Node(value, null, node, self) :\n new Node(value, node, node.next, self)\n\n if (inserted.next === null) {\n self.tail = inserted\n }\n if (inserted.prev === null) {\n self.head = inserted\n }\n\n self.length++\n\n return inserted\n}\n\nfunction push (self, item) {\n self.tail = new Node(item, self.tail, null, self)\n if (!self.head) {\n self.head = self.tail\n }\n self.length++\n}\n\nfunction unshift (self, item) {\n self.head = new Node(item, null, self.head, self)\n if (!self.tail) {\n self.tail = self.head\n }\n self.length++\n}\n\nfunction Node (value, prev, next, list) {\n if (!(this instanceof Node)) {\n return new Node(value, prev, next, list)\n }\n\n this.list = list\n this.value = value\n\n if (prev) {\n prev.next = this\n this.prev = prev\n } else {\n this.prev = null\n }\n\n if (next) {\n next.prev = this\n this.next = next\n } else {\n this.next = null\n }\n}\n\ntry {\n // add if support for Symbol.iterator is present\n require('./iterator.js')(Yallist)\n} catch (er) {}\n","'use strict'\n\n// A linked list to keep track of recently-used-ness\nconst Yallist = require('yallist')\n\nconst MAX = Symbol('max')\nconst LENGTH = Symbol('length')\nconst LENGTH_CALCULATOR = Symbol('lengthCalculator')\nconst ALLOW_STALE = Symbol('allowStale')\nconst MAX_AGE = Symbol('maxAge')\nconst DISPOSE = Symbol('dispose')\nconst NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet')\nconst LRU_LIST = Symbol('lruList')\nconst CACHE = Symbol('cache')\nconst UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet')\n\nconst naiveLength = () => 1\n\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass LRUCache {\n constructor (options) {\n if (typeof options === 'number')\n options = { max: options }\n\n if (!options)\n options = {}\n\n if (options.max && (typeof options.max !== 'number' || options.max < 0))\n throw new TypeError('max must be a non-negative number')\n // Kind of weird to have a default max of Infinity, but oh well.\n const max = this[MAX] = options.max || Infinity\n\n const lc = options.length || naiveLength\n this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc\n this[ALLOW_STALE] = options.stale || false\n if (options.maxAge && typeof options.maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n this[MAX_AGE] = options.maxAge || 0\n this[DISPOSE] = options.dispose\n this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false\n this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false\n this.reset()\n }\n\n // resize the cache when the max changes.\n set max (mL) {\n if (typeof mL !== 'number' || mL < 0)\n throw new TypeError('max must be a non-negative number')\n\n this[MAX] = mL || Infinity\n trim(this)\n }\n get max () {\n return this[MAX]\n }\n\n set allowStale (allowStale) {\n this[ALLOW_STALE] = !!allowStale\n }\n get allowStale () {\n return this[ALLOW_STALE]\n }\n\n set maxAge (mA) {\n if (typeof mA !== 'number')\n throw new TypeError('maxAge must be a non-negative number')\n\n this[MAX_AGE] = mA\n trim(this)\n }\n get maxAge () {\n return this[MAX_AGE]\n }\n\n // resize the cache when the lengthCalculator changes.\n set lengthCalculator (lC) {\n if (typeof lC !== 'function')\n lC = naiveLength\n\n if (lC !== this[LENGTH_CALCULATOR]) {\n this[LENGTH_CALCULATOR] = lC\n this[LENGTH] = 0\n this[LRU_LIST].forEach(hit => {\n hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)\n this[LENGTH] += hit.length\n })\n }\n trim(this)\n }\n get lengthCalculator () { return this[LENGTH_CALCULATOR] }\n\n get length () { return this[LENGTH] }\n get itemCount () { return this[LRU_LIST].length }\n\n rforEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].tail; walker !== null;) {\n const prev = walker.prev\n forEachStep(this, fn, walker, thisp)\n walker = prev\n }\n }\n\n forEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].head; walker !== null;) {\n const next = walker.next\n forEachStep(this, fn, walker, thisp)\n walker = next\n }\n }\n\n keys () {\n return this[LRU_LIST].toArray().map(k => k.key)\n }\n\n values () {\n return this[LRU_LIST].toArray().map(k => k.value)\n }\n\n reset () {\n if (this[DISPOSE] &&\n this[LRU_LIST] &&\n this[LRU_LIST].length) {\n this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value))\n }\n\n this[CACHE] = new Map() // hash of items by key\n this[LRU_LIST] = new Yallist() // list of items in order of use recency\n this[LENGTH] = 0 // length of items in the list\n }\n\n dump () {\n return this[LRU_LIST].map(hit =>\n isStale(this, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }).toArray().filter(h => h)\n }\n\n dumpLru () {\n return this[LRU_LIST]\n }\n\n set (key, value, maxAge) {\n maxAge = maxAge || this[MAX_AGE]\n\n if (maxAge && typeof maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n\n const now = maxAge ? Date.now() : 0\n const len = this[LENGTH_CALCULATOR](value, key)\n\n if (this[CACHE].has(key)) {\n if (len > this[MAX]) {\n del(this, this[CACHE].get(key))\n return false\n }\n\n const node = this[CACHE].get(key)\n const item = node.value\n\n // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n if (this[DISPOSE]) {\n if (!this[NO_DISPOSE_ON_SET])\n this[DISPOSE](key, item.value)\n }\n\n item.now = now\n item.maxAge = maxAge\n item.value = value\n this[LENGTH] += len - item.length\n item.length = len\n this.get(key)\n trim(this)\n return true\n }\n\n const hit = new Entry(key, value, len, now, maxAge)\n\n // oversized objects fall out of cache automatically.\n if (hit.length > this[MAX]) {\n if (this[DISPOSE])\n this[DISPOSE](key, value)\n\n return false\n }\n\n this[LENGTH] += hit.length\n this[LRU_LIST].unshift(hit)\n this[CACHE].set(key, this[LRU_LIST].head)\n trim(this)\n return true\n }\n\n has (key) {\n if (!this[CACHE].has(key)) return false\n const hit = this[CACHE].get(key).value\n return !isStale(this, hit)\n }\n\n get (key) {\n return get(this, key, true)\n }\n\n peek (key) {\n return get(this, key, false)\n }\n\n pop () {\n const node = this[LRU_LIST].tail\n if (!node)\n return null\n\n del(this, node)\n return node.value\n }\n\n del (key) {\n del(this, this[CACHE].get(key))\n }\n\n load (arr) {\n // reset the cache\n this.reset()\n\n const now = Date.now()\n // A previous serialized cache has the most recent items first\n for (let l = arr.length - 1; l >= 0; l--) {\n const hit = arr[l]\n const expiresAt = hit.e || 0\n if (expiresAt === 0)\n // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v)\n else {\n const maxAge = expiresAt - now\n // dont add already expired items\n if (maxAge > 0) {\n this.set(hit.k, hit.v, maxAge)\n }\n }\n }\n }\n\n prune () {\n this[CACHE].forEach((value, key) => get(this, key, false))\n }\n}\n\nconst get = (self, key, doUse) => {\n const node = self[CACHE].get(key)\n if (node) {\n const hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n return undefined\n } else {\n if (doUse) {\n if (self[UPDATE_AGE_ON_GET])\n node.value.now = Date.now()\n self[LRU_LIST].unshiftNode(node)\n }\n }\n return hit.value\n }\n}\n\nconst isStale = (self, hit) => {\n if (!hit || (!hit.maxAge && !self[MAX_AGE]))\n return false\n\n const diff = Date.now() - hit.now\n return hit.maxAge ? diff > hit.maxAge\n : self[MAX_AGE] && (diff > self[MAX_AGE])\n}\n\nconst trim = self => {\n if (self[LENGTH] > self[MAX]) {\n for (let walker = self[LRU_LIST].tail;\n self[LENGTH] > self[MAX] && walker !== null;) {\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n const prev = walker.prev\n del(self, walker)\n walker = prev\n }\n }\n}\n\nconst del = (self, node) => {\n if (node) {\n const hit = node.value\n if (self[DISPOSE])\n self[DISPOSE](hit.key, hit.value)\n\n self[LENGTH] -= hit.length\n self[CACHE].delete(hit.key)\n self[LRU_LIST].removeNode(node)\n }\n}\n\nclass Entry {\n constructor (key, value, length, now, maxAge) {\n this.key = key\n this.value = value\n this.length = length\n this.now = now\n this.maxAge = maxAge || 0\n }\n}\n\nconst forEachStep = (self, fn, node, thisp) => {\n let hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n hit = undefined\n }\n if (hit)\n fn.call(thisp, hit.value, hit.key, self)\n}\n\nmodule.exports = LRUCache\n","const SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n","const compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n","const compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n","const compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n","const compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n","const compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n","const compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n","const eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst cmp = (a, op, b, loose) => {\n switch (op) {\n case '===':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a === b\n\n case '!==':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError(`Invalid operator: ${op}`)\n }\n}\nmodule.exports = cmp\n","const ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n static get ANY () {\n return ANY\n }\n\n constructor (comp, options) {\n options = parseOptions(options)\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n }\n\n parse (comp) {\n const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const m = comp.match(r)\n\n if (!m) {\n throw new TypeError(`Invalid comparator: ${comp}`)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n }\n\n toString () {\n return this.value\n }\n\n test (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n }\n\n intersects (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false,\n }\n }\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n return new Range(comp.value, options).test(this.value)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n return new Range(this.value, options).test(comp.semver)\n }\n\n const sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n const sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n const sameSemVer = this.semver.version === comp.semver.version\n const differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n const oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<')\n const oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>')\n\n return (\n sameDirectionIncreasing ||\n sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan ||\n oppositeDirectionsGreaterThan\n )\n }\n}\n\nmodule.exports = Comparator\n\nconst parseOptions = require('../internal/parse-options')\nconst { re, t } = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n","// hoisted class for cyclic dependency\nclass Range {\n constructor (range, options) {\n options = parseOptions(options)\n\n if (range instanceof Range) {\n if (\n range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease\n ) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n // just put it in the set and return\n this.raw = range.value\n this.set = [[range]]\n this.format()\n return this\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First, split based on boolean or ||\n this.raw = range\n this.set = range\n .split('||')\n // map the range to a 2d array of comparators\n .map(r => this.parseRange(r.trim()))\n // throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter(c => c.length)\n\n if (!this.set.length) {\n throw new TypeError(`Invalid SemVer Range: ${range}`)\n }\n\n // if we have any that are not the null set, throw out null sets.\n if (this.set.length > 1) {\n // keep the first one, in case they're all null sets\n const first = this.set[0]\n this.set = this.set.filter(c => !isNullSet(c[0]))\n if (this.set.length === 0) {\n this.set = [first]\n } else if (this.set.length > 1) {\n // if we have any that are *, then the range is just *\n for (const c of this.set) {\n if (c.length === 1 && isAny(c[0])) {\n this.set = [c]\n break\n }\n }\n }\n }\n\n this.format()\n }\n\n format () {\n this.range = this.set\n .map((comps) => {\n return comps.join(' ').trim()\n })\n .join('||')\n .trim()\n return this.range\n }\n\n toString () {\n return this.range\n }\n\n parseRange (range) {\n range = range.trim()\n\n // memoize range parsing for performance.\n // this is a very hot path, and fully deterministic.\n const memoOpts = Object.keys(this.options).join(',')\n const memoKey = `parseRange:${memoOpts}:${range}`\n const cached = cache.get(memoKey)\n if (cached) {\n return cached\n }\n\n const loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range)\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n let rangeList = range\n .split(' ')\n .map(comp => parseComparator(comp, this.options))\n .join(' ')\n .split(/\\s+/)\n // >=0.0.0 is equivalent to *\n .map(comp => replaceGTE0(comp, this.options))\n\n if (loose) {\n // in loose mode, throw out any that are not valid comparators\n rangeList = rangeList.filter(comp => {\n debug('loose invalid filter', comp, this.options)\n return !!comp.match(re[t.COMPARATORLOOSE])\n })\n }\n debug('range list', rangeList)\n\n // if any comparators are the null set, then replace with JUST null set\n // if more than one comparator, remove any * comparators\n // also, don't include the same comparator more than once\n const rangeMap = new Map()\n const comparators = rangeList.map(comp => new Comparator(comp, this.options))\n for (const comp of comparators) {\n if (isNullSet(comp)) {\n return [comp]\n }\n rangeMap.set(comp.value, comp)\n }\n if (rangeMap.size > 1 && rangeMap.has('')) {\n rangeMap.delete('')\n }\n\n const result = [...rangeMap.values()]\n cache.set(memoKey, result)\n return result\n }\n\n intersects (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some((thisComparators) => {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some((rangeComparators) => {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every((thisComparator) => {\n return rangeComparators.every((rangeComparator) => {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n }\n\n // if ANY of the sets match ALL of its comparators, then pass\n test (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (let i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n }\n}\nmodule.exports = Range\n\nconst LRU = require('lru-cache')\nconst cache = new LRU({ max: 1000 })\n\nconst parseOptions = require('../internal/parse-options')\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n re,\n t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace,\n} = require('../internal/re')\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n let result = true\n const remainingComparators = comparators.slice()\n let testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every((otherComparator) => {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst replaceTildes = (comp, options) =>\n comp.trim().split(/\\s+/).map((c) => {\n return replaceTilde(c, options)\n }).join(' ')\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst replaceCarets = (comp, options) =>\n comp.trim().split(/\\s+/).map((c) => {\n return replaceCaret(c, options)\n }).join(' ')\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map((c) => {\n return replaceXRange(c, options)\n }).join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<') {\n pr = '-0'\n }\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp.trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return (`${from} ${to}`).trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n","const Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n","import semverCoerce from \"semver/functions/coerce\";\nimport semverSatisfies from \"semver/functions/satisfies\";\n\nexport function checkVersion(threshold: string, version?: string): boolean {\n if (!version) return false;\n const parsedVersion = semverCoerce(version);\n if (parsedVersion === null) return false;\n\n return semverSatisfies(parsedVersion, threshold);\n}\n","import { ApplicationMode } from \"@slicemachine/client\";\nimport util from \"util\";\nimport { exec } from \"child_process\";\nexport * as logs from \"./logs\";\nexport { Auth } from \"./auth\";\nexport * from \"./client\";\nexport * from \"./fs\";\nexport * from \"./versionCheck\";\n\nexport function findArgument(args: string[], name: string): string | undefined {\n const flagIndex: number = args.indexOf(`--${name}`);\n\n if (flagIndex === -1) return;\n if (args.length < flagIndex + 2) return;\n\n const flagValue = args[flagIndex + 1];\n\n if (flagValue.startsWith(\"--\")) return;\n return flagValue;\n}\n\nexport function findFlag(args: string[], name: string): boolean {\n const toFind = `--${name}`;\n return args.includes(toFind);\n}\n\nexport const execCommand: (\n command: string\n) => Promise<{ stderr: string; stdout: string }> = util.promisify(exec);\n\nexport function getApplicationMode(\n argumentValue: string | undefined\n): ApplicationMode | null {\n switch (argumentValue) {\n case ApplicationMode.PROD:\n case ApplicationMode.STAGE:\n case ApplicationMode.DEV:\n return argumentValue;\n default:\n return null;\n }\n}\n","import path from \"path\";\nimport { checkVersion, execCommand, logs } from \"../utils\";\nimport { CONSTS, Models } from \"@slicemachine/core\";\nimport * as NodeUtils from \"@slicemachine/core/build/node-utils\";\n\nconst {\n PRISMIC_CLIENT,\n PRISMIC_DOM_PACKAGE_NAME,\n PRISMIC_REACT_PACKAGE_NAME,\n PRISMIC_NEXT,\n SM_PACKAGE_NAME,\n NUXT_PRISMIC,\n PRISMIC_VUE,\n SLICE_SIMULATOR_REACT,\n SLICE_SIMULATOR_VUE,\n PRISMIC_HELPERS,\n PRISMIC_TYPES,\n} = CONSTS;\n\nexport function nextDeps(version?: string): string {\n if (checkVersion(\">=13.0.0\", version)) {\n return PRISMIC_NEXT;\n }\n\n return \"\";\n}\n\nfunction depsForFramework(\n framework: Models.Frameworks,\n version?: string\n): string {\n switch (framework) {\n case Models.Frameworks.react:\n return `${PRISMIC_REACT_PACKAGE_NAME} ${PRISMIC_CLIENT} ${PRISMIC_HELPERS}`;\n case Models.Frameworks.next:\n return `${PRISMIC_REACT_PACKAGE_NAME} ${nextDeps(\n version\n )} ${PRISMIC_CLIENT} ${SLICE_SIMULATOR_REACT} ${PRISMIC_HELPERS}`;\n case Models.Frameworks.svelte:\n return `${PRISMIC_DOM_PACKAGE_NAME} ${PRISMIC_CLIENT}`;\n case Models.Frameworks.nuxt:\n return `${NUXT_PRISMIC} ${SLICE_SIMULATOR_VUE}`;\n case Models.Frameworks.vue:\n return `${PRISMIC_VUE} ${PRISMIC_CLIENT} ${PRISMIC_DOM_PACKAGE_NAME}`;\n default:\n return \"\";\n }\n}\n\nasync function addAndInstallDeps(\n framework: Models.Frameworks,\n version?: string,\n useYarn = false\n): Promise<string> {\n const installDevDependencyCommand = useYarn\n ? \"yarn add -D\"\n : \"npm install --save-dev\";\n const installDependencyCommand = useYarn ? \"yarn add\" : \"npm install --save\";\n\n const { stderr } = await execCommand(\n `${installDevDependencyCommand} ${SM_PACKAGE_NAME} ${PRISMIC_TYPES}`\n );\n\n const deps = depsForFramework(framework, version);\n if (deps) await execCommand(`${installDependencyCommand} ${deps}`);\n\n return stderr;\n}\n\nasync function installDeps(useYarn = false): Promise<string> {\n const installCommand = useYarn ? \"yarn\" : \"npm install\";\n const { stderr } = await execCommand(installCommand);\n return stderr;\n}\n\nexport async function installRequiredDependencies(\n cwd: string,\n framework: Models.Frameworks,\n skipDependencies: boolean,\n version?: string\n): Promise<void> {\n const yarnLock = NodeUtils.Files.exists(NodeUtils.YarnLockPath(cwd));\n\n const spinner = logs.spinner(\"Installing Slice Machine\");\n spinner.start();\n\n const stderr = await (skipDependencies\n ? installDeps(yarnLock)\n : addAndInstallDeps(framework, version, yarnLock));\n\n const pathToPkg = path.join(\n NodeUtils.PackagePaths(cwd).value(),\n SM_PACKAGE_NAME\n );\n const isPackageInstalled = NodeUtils.Files.exists(pathToPkg);\n\n if (isPackageInstalled || !stderr.length) {\n spinner.succeed(\"Slice Machine was installed successfully\");\n return;\n }\n\n spinner.fail();\n logs.writeWarning(\n `could not install ${SM_PACKAGE_NAME}. Please do it manually!`\n );\n}\n","import * as NodeUtils from \"@slicemachine/core/build/node-utils\";\nimport { logs } from \"../utils\";\n\nexport function validatePkg(cwd: string): void {\n const jsonPackage = NodeUtils.retrieveJsonPackage(cwd);\n if (!jsonPackage.exists) {\n logs.writeError(`package.json not found. Are you in the right folder?`);\n return process.exit(-1);\n }\n if (!jsonPackage.content) {\n logs.writeError(`could not parse package.json.`);\n return process.exit(-1);\n }\n}\n","import type { Models } from \"@slicemachine/core\";\nimport * as logs from \"./logs\";\nimport { InitClient } from \"./client\";\nimport Tracker from \"../utils/tracker\";\n\nexport function createRepository(\n client: InitClient,\n domain: string,\n framework: Models.Frameworks\n): Promise<string> {\n const spinner = logs.spinner(\"Creating Prismic Repository\");\n spinner.start();\n\n return client\n .createRepository(domain, framework)\n .then((domain: string) => {\n const addressUrl = new URL(client.apisEndpoints.Wroom);\n addressUrl.hostname = `${domain}.${addressUrl.hostname}`;\n const address = addressUrl.toString();\n spinner.succeed(`We created your new repository ${address}`);\n\n return domain;\n })\n .catch(async (error: Error) => {\n spinner.fail(`Error creating repository ${domain}`);\n await Tracker.get().trackInitEndFail(\n framework,\n \"Failed to create repository\"\n );\n if (error.message) {\n logs.writeError(error.message);\n }\n logs.writeError(`We failed to create you new prismic repository`);\n console.log(`Run ${logs.bold(\"npx @slicemachine/init\")} again!`);\n process.exit(-1);\n });\n}\n","import { InitClient } from \"./client\";\n\nexport async function validateRepositoryName(\n client: InitClient,\n name: string\n): Promise<boolean> {\n const domain = name.trim();\n const errors = [];\n\n const startsWithLetter = /^[a-zA-Z]/.test(domain);\n if (!startsWithLetter) errors.push(\"Must start with a letter.\");\n\n const acceptedChars = /^[a-z0-9-]+$/.test(domain);\n if (!acceptedChars)\n errors.push(\"Must contain only lowercase letters, numbers and hyphens.\");\n\n const fourCharactersOrMore = domain.length >= 4;\n if (!fourCharactersOrMore)\n errors.push(\n \"Must have four or more alphanumeric characters and/or hyphens.\"\n );\n\n const endsWithALetterOrNumber = /[a-z0-9]$/.test(domain);\n if (!endsWithALetterOrNumber)\n errors.push(\"Must end in a letter or a number.\");\n\n const thirtyCharacterOrLess = domain.length <= 30;\n if (!thirtyCharacterOrLess) errors.push(\"Must be 30 characters or less\");\n\n if (errors.length > 0) {\n const errorString = errors.map((d, i) => `(${i + 1}: ${d}`).join(\" \");\n const msg = `Validation errors: ${errorString}`;\n return Promise.reject(new Error(msg));\n }\n\n return client\n .domainExist(domain)\n .then((isAvailable) =>\n isAvailable\n ? true\n : Promise.reject(new Error(`${name} is already in use`))\n )\n .catch(() => Promise.reject(new Error(`${name} is already in use`)));\n}\n","import * as inquirer from \"inquirer\";\nimport Separator from \"inquirer/lib/objects/separator\";\nimport { Models } from \"@slicemachine/core\";\nimport * as NodeUtils from \"@slicemachine/core/build/node-utils\";\nimport { createRepository } from \"../utils/create-repo\";\nimport { validateRepositoryName } from \"../utils/validateRepositoryName\";\nimport { InitClient, logs } from \"../utils\";\n\nexport const CREATE_REPO = \"$_CREATE_REPO\"; // not a valid domain name\n\nexport function prettyRepoName(address: URL, domain: string): string {\n return `${logs.cyan.dim(`${address.protocol}//`)}${logs.cyan(\n domain\n )}${logs.cyan.dim(`.${address.hostname}`)}`;\n}\n\nexport async function promptForRepoDomain(\n client: InitClient,\n defaultValue?: string\n): Promise<string> {\n const address = new URL(client.apisEndpoints.Wroom);\n\n logs.writeInfo(\n \"The name acts as a domain/endpoint for your content repo and should be completely unique.\"\n );\n\n return inquirer\n .prompt<Record<string, string>>([\n {\n name: \"repoDomain\",\n message: \"Name your Prismic repository\",\n type: \"input\",\n required: true,\n default: defaultValue,\n transformer: (value: string | undefined) =>\n prettyRepoName(address, value || defaultValue || \"repository\"),\n validate: (name: string) => validateRepositoryName(client, name),\n },\n ])\n .then((res) => res.repoDomain);\n}\n\nexport type RepoPrompt = { name: string; value: string; disabled?: string };\n\nexport type PromptOrSeparator = RepoPrompt | Separator;\n\nexport type RepoPrompts = Array<PromptOrSeparator>;\n\nexport function makeReposPretty(base: string) {\n return function ({ name, domain, role }: Models.Repository): RepoPrompt {\n const address = new URL(base);\n address.hostname = `${domain}.${address.hostname}`;\n if (Models.canUpdateCustomTypes(role) === false) {\n return {\n name: `${logs.purple.dim(\"Use\")} ${logs.bold.dim(\n name\n )} ${logs.purple.dim(`\"${address.hostname}\"`)}`,\n value: domain,\n disabled: \"Unauthorized\",\n };\n }\n\n return {\n name: `${logs.purple(\"Use\")} ${logs.bold(name)} ${logs.purple(\n `\"${address.hostname}\"`\n )}`,\n value: domain,\n };\n };\n}\n\nexport function orderPrompts(maybeName?: string | null) {\n return (a: PromptOrSeparator, b: PromptOrSeparator): number => {\n if (a instanceof Separator || b instanceof Separator) return 0;\n if (maybeName && (a.value === maybeName || b.value === maybeName)) return 0;\n if (a.value === CREATE_REPO || b.value === CREATE_REPO) return 0;\n if (a.disabled && !b.disabled) return 1;\n if (!a.disabled && b.disabled) return -1;\n return 0;\n };\n}\n\nexport function maybeStickTheRepoToTheTopOfTheList(repoName?: string | null) {\n return (acc: RepoPrompts, curr: RepoPrompt): RepoPrompts => {\n if (repoName && curr.value === repoName) {\n return [curr, ...acc];\n }\n return [...acc, curr];\n };\n}\n\nexport function sortReposForPrompt(\n repos: Models.Repositories,\n base: string,\n cwd: string\n): RepoPrompts {\n const createNew = {\n name: `${logs.purple(\"Create a\")} ${logs.bold(\"new\")} ${logs.purple(\n \"Repository\"\n )}`,\n value: CREATE_REPO,\n };\n\n const maybeConfiguredRepoName = NodeUtils.maybeRepoNameFromSMFile(cwd, base);\n\n return repos\n .reverse()\n .map(makeReposPretty(base))\n .reduce(maybeStickTheRepoToTheTopOfTheList(maybeConfiguredRepoName), [\n createNew,\n ])\n .sort(orderPrompts(maybeConfiguredRepoName));\n}\n\nexport async function chooseOrCreateARepository(\n client: InitClient,\n cwd: string,\n framework: Models.Frameworks,\n preSelectedRepository?: string\n): Promise<string> {\n const repositories: Models.Repository[] = await client.listRepositories();\n\n const isPreSelectedValid =\n preSelectedRepository &&\n repositories.find(\n (repository) => repository.domain === preSelectedRepository\n );\n if (isPreSelectedValid) return preSelectedRepository;\n\n // No repository to display, ask for a new repository name to create it.\n if (repositories.length === 0) {\n const domainName = await promptForRepoDomain(client, preSelectedRepository);\n await createRepository(client, domainName, framework);\n return domainName;\n }\n\n // prepare the list of repositories to display\n const choices = sortReposForPrompt(\n repositories,\n client.apisEndpoints.Wroom,\n cwd\n );\n const numberOfDisabledRepos = choices.filter((repo) => {\n if (repo instanceof Separator) return false;\n return repo.disabled;\n }).length;\n\n // display the list of repositories and wait for the user to choose one.\n const promptResult = await inquirer.prompt<{ chosenRepository: string }>([\n {\n type: \"list\",\n name: \"chosenRepository\",\n default: 0,\n required: true,\n message: \"Connect a Prismic Repository or create a new one\",\n choices,\n pageSize: numberOfDisabledRepos + 2 <= 7 ? 7 : numberOfDisabledRepos + 2,\n },\n ]);\n\n // If the user has chosen to create a new repository.\n if (promptResult.chosenRepository === CREATE_REPO) {\n const domainName = await promptForRepoDomain(client, preSelectedRepository);\n await createRepository(client, domainName, framework);\n return domainName;\n }\n\n return promptResult.chosenRepository;\n}\n","import { Models } from \"@slicemachine/core\";\nimport * as NodeUtils from \"@slicemachine/core/build/node-utils\";\nimport * as inquirer from \"inquirer\";\nimport { logs } from \"../utils\";\nimport Tracker from \"../utils/tracker\";\n\nexport type FrameworkResult = {\n value: Models.Frameworks;\n manuallyAdded: boolean;\n version?: string;\n};\n\nexport async function promptForFramework(): Promise<FrameworkResult> {\n const choices = Models.SupportedFrameworks.map((framework) => {\n return {\n name: NodeUtils.Framework.fancyName(framework),\n value: framework,\n };\n });\n\n return inquirer\n .prompt<{ framework: Models.Frameworks }>([\n {\n name: \"framework\",\n type: \"list\",\n message: \"Select a framework to use\",\n required: true,\n choices,\n },\n ])\n .then((res) => {\n return {\n value: res.framework,\n manuallyAdded: true,\n version: undefined,\n };\n });\n}\n\nexport async function detectFramework(cwd: string): Promise<FrameworkResult> {\n const failMessage = `Please run ${logs.bold(\n \"npx @slicemachine/init\"\n )} in a Nuxt or Next.js project`;\n\n const spinner = logs.spinner(\n \"Detecting framework to install correct dependencies\"\n );\n\n spinner.start();\n\n try {\n const { framework, version } =\n NodeUtils.Framework.defineFrameworkWithVersion({\n cwd,\n supportedFrameworks: Object.values(Models.Frameworks),\n });\n\n spinner.stop();\n\n if (!framework || framework === Models.Frameworks.vanillajs) {\n logs.writeError(\"Framework not detected\");\n return await promptForFramework();\n }\n\n const nameToPrint = NodeUtils.Framework.fancyName(framework);\n\n if (!NodeUtils.Framework.isFrameworkSupported(framework)) {\n logs.writeError(`${nameToPrint} is currently not supported`);\n console.log(failMessage);\n process.exit(1);\n }\n\n logs.writeCheck(`${nameToPrint} detected`);\n\n return {\n value: framework,\n manuallyAdded: false,\n version,\n };\n } catch (error) {\n spinner.fail(\"package.json not found\");\n\n if (error instanceof Error && error.message) {\n logs.writeError(error.message);\n } else {\n console.log(failMessage);\n }\n await Tracker.get().trackInitEndFail(\n Models.Frameworks.none,\n \"Framework not detected\"\n );\n process.exit(1);\n }\n}\n","import { Models } from \"@slicemachine/core\";\nimport { PrismicSharedConfigManager } from \"@slicemachine/core/build/prismic\";\nimport { logs, Auth, InitClient } from \"../utils\";\n\nexport async function loginOrBypass(\n client: InitClient\n): Promise<Models.UserProfile> {\n const user: Models.UserProfile | null = await client\n .profile()\n .catch(() => null);\n\n if (user) {\n const email = user.email;\n logs.writeCheck(`Logged in as ${logs.bold(email)}`);\n return user;\n }\n\n await Auth.login(client);\n\n // update token used to make calls.\n client.updateAuthenticationToken(PrismicSharedConfigManager.getAuth());\n\n const userAfterLogin: Models.UserProfile = await client.profile();\n return userAfterLogin;\n}\n","import type { Models } from \"@slicemachine/core\";\nimport * as Prismic from \"@slicemachine/core/build/prismic\";\nimport * as NodeUtils from \"@slicemachine/core/build/node-utils\";\nimport { FrameworkResult } from \"./detect-framework\";\nimport { InitClient, logs } from \"../utils\";\nimport Tracker from \"../utils/tracker\";\n\nexport async function configureProject(\n client: InitClient,\n cwd: string,\n repositoryDomainName: string,\n framework: FrameworkResult,\n sliceLibPath: string[] = [],\n tracking = true\n): Promise<void> {\n const frameworkName = NodeUtils.Framework.fancyName(framework.value);\n const spinner = logs.spinner(\n `Configuring your ${frameworkName} and Prismic project...`\n );\n spinner.start();\n\n try {\n const manifest = NodeUtils.retrieveManifest(cwd);\n const manifestAlreadyExistWithContent = manifest.exists && manifest.content;\n\n const libs =\n manifest.content &&\n manifest.content.libraries &&\n manifest.content.libraries.length > 0\n ? manifest.content.libraries\n : [\"@/slices\"];\n\n const manifestUpdated: Models.Manifest = {\n ...(manifestAlreadyExistWithContent ? manifest.content : {}),\n apiEndpoint: Prismic.Endpoints.buildRepositoryEndpoint(\n client.apisEndpoints.Wroom,\n repositoryDomainName\n ),\n libraries: [...libs, ...sliceLibPath], // odd case here for staters\n ...(framework.manuallyAdded ? { framework: framework.value } : {}),\n ...(!tracking ? { tracking } : {}),\n };\n\n if (!manifest.exists) NodeUtils.createManifest(cwd, manifestUpdated);\n else NodeUtils.patchManifest(cwd, manifestUpdated);\n\n // create the default slices folder if it doesn't exist.\n const pathToSlicesFolder = NodeUtils.CustomPaths(cwd)\n .library(\"slices\")\n .value();\n if (\n !NodeUtils.Files.exists(pathToSlicesFolder) &&\n libs.includes(\"@/slices\")\n ) {\n NodeUtils.Files.mkdir(pathToSlicesFolder, { recursive: true });\n }\n\n // add slicemachine script to package.json.\n NodeUtils.addJsonPackageSmScript(cwd);\n\n await Tracker.get().trackInitEndSuccess(framework.value);\n\n spinner.succeed(\"Project configured! Ready to start\");\n } catch (error) {\n await Tracker.get().trackInitEndFail(\n framework.value,\n \"Failed to configure Slice Machine\"\n );\n spinner.fail(\"Failed to configure Slice Machine\");\n process.exit(-1);\n }\n}\n","import { CONSTS } from \"@slicemachine/core\";\nimport * as NodeUtils from \"@slicemachine/core/build/node-utils\";\nimport { logs } from \"../utils\";\n\nexport function displayFinalMessage(\n cwd: string,\n wasStarter: boolean,\n reponame: string,\n base: string\n): void {\n const yarnLock = NodeUtils.Files.exists(NodeUtils.YarnLockPath(cwd));\n const command = `${yarnLock ? \"yarn\" : \"npm\"} run ${CONSTS.SCRIPT_NAME}`;\n console.log();\n\n if (wasStarter) {\n const repoUrl = new URL(base);\n repoUrl.hostname = `${reponame}.${repoUrl.hostname}`;\n const urlAsString = repoUrl.toString();\n\n const message = `${logs.white(\n \"■\"\n )} Start editing your content in Prismic ${logs.purple(urlAsString)}`;\n console.log(message);\n } else {\n console.log(\n `${logs.white(\"■\")} Run ${logs.purple(\n command\n )} to launch Slice Machine and create your first Custom Type`\n );\n }\n}\n","import * as NodeUtils from \"@slicemachine/core/build/node-utils\";\nimport { execCommand } from \"../utils\";\n\nexport type Dependency = string | { name: string; version: string };\nexport const Dependencies = {\n fromPkgFormat(\n pkgDeps: Record<string, string> | undefined\n ): ReadonlyArray<Dependency> | undefined {\n if (!pkgDeps) return;\n\n return Object.entries(pkgDeps).map(([name, version]) => ({\n name,\n version,\n }));\n },\n};\nfunction formatDeps(dependencies: ReadonlyArray<Dependency>): string {\n return dependencies\n .map((dep) => {\n if (typeof dep === \"string\") return dep;\n return `${dep.name}@${dep.version}`;\n })\n .join(\" \");\n}\n\nexport interface PackageManager {\n install(dependencies: ReadonlyArray<Dependency>): Promise<{ stderr: string }>;\n installDev(\n dependencies: ReadonlyArray<Dependency>\n ): Promise<{ stderr: string }>;\n}\n\nexport const PackageManager = {\n get(cwd: string): PackageManager {\n if (NodeUtils.Files.exists(NodeUtils.YarnLockPath(cwd))) {\n return Yarn;\n }\n return Npm;\n },\n};\n\nexport const Yarn: PackageManager = {\n install(\n dependencies: ReadonlyArray<Dependency>\n ): Promise<{ stderr: string }> {\n return execCommand(`yarn add ${formatDeps(dependencies)}`);\n },\n installDev(\n dependencies: ReadonlyArray<Dependency>\n ): Promise<{ stderr: string }> {\n return execCommand(`yarn add --dev ${formatDeps(dependencies)}`);\n },\n};\n\nexport const Npm: PackageManager = {\n install(\n dependencies: ReadonlyArray<Dependency>\n ): Promise<{ stderr: string }> {\n return execCommand(`npm i --save ${formatDeps(dependencies)}`);\n },\n installDev(\n dependencies: ReadonlyArray<Dependency>\n ): Promise<{ stderr: string }> {\n return execCommand(`npm i --save-dev ${formatDeps(dependencies)}`);\n },\n};\n","import { Models } from \"@slicemachine/core\";\nimport * as NodeUtils from \"@slicemachine/core/build/node-utils\";\nimport tmp from \"tmp\";\nimport AdmZip from \"adm-zip\";\nimport fsExtra from \"fs-extra\";\nimport axios from \"axios\";\n\nimport fs from \"fs\";\nimport path from \"path\";\nimport { getOrElseW } from \"fp-ts/Either\";\nimport { PackageManager, Dependencies } from \"../utils/PackageManager\";\nimport Tracker from \"../utils/tracker\";\nimport { logs } from \"../utils\";\n\nconst { PackageJsonHelper } = NodeUtils;\n\nconst downloadFile = async (reqUrl: string): Promise<string> => {\n const res = await axios.get<Buffer>(reqUrl, { responseType: \"arraybuffer\" });\n\n return new Promise((resolve, reject) => {\n if (res.status == 200) {\n const tmpZipFile = tmp.tmpNameSync();\n const zip = new AdmZip(res.data);\n zip.extractAllTo(tmpZipFile);\n resolve(tmpZipFile);\n } else {\n reject();\n }\n });\n};\n\nfunction toGithubSource(githubPath: string, branch: string): string {\n return `https://codeload.github.com/${githubPath}/zip/${branch}`;\n}\n\nexport async function installLib(\n cwd: string,\n libGithubPath: string,\n branch = \"HEAD\"\n): Promise<string[] | undefined> {\n const spinner = logs.spinner(\n `Installing the ${libGithubPath} lib in your project...`\n );\n\n try {\n spinner.start();\n\n const [githubUserName, githubProjectName] = libGithubPath.split(\"/\");\n const source = toGithubSource(libGithubPath, branch);\n\n const zipFilePath = await downloadFile(source);\n const outputFolder = `${githubProjectName}-${branch}`;\n const projectPath = path.join(zipFilePath, outputFolder);\n\n const name = `${githubUserName}-${githubProjectName}`;\n const libDestinationFolder = path.join(cwd, name);\n\n // We should be able to offer the ability to override or not an existing library\n if (fs.existsSync(libDestinationFolder)) {\n spinner.succeed(`Lib \"${libGithubPath}\" was already installed (skipped)`);\n return;\n }\n\n // We copy all the slices into the the user project minus the src folder\n fsExtra.moveSync(path.join(projectPath, \"src\"), libDestinationFolder);\n\n // handle dependencies\n const pkgManager = PackageManager.get(cwd);\n const pkgJson = PackageJsonHelper.fromPath(\n path.join(projectPath, \"package.json\")\n );\n if (pkgJson instanceof Error) throw pkgJson;\n\n const dependencies = Dependencies.fromPkgFormat(pkgJson.dependencies);\n if (dependencies) await pkgManager.install(dependencies);\n\n // generate meta file\n NodeUtils.Files.write(path.join(libDestinationFolder, \"meta.json\"), {\n name: pkgJson.name,\n });\n\n // retrieve all slices lib paths\n const manifest = NodeUtils.Files.readEntity<Error | Models.Manifest>(\n path.join(projectPath, \"sm.json\"),\n (payload: unknown) => {\n return getOrElseW(\n () => new Error(`Unable to parse sm.json from lib ${libGithubPath}`)\n )(Models.Manifest.decode(payload));\n }\n );\n if (manifest instanceof Error) throw manifest;\n\n const localLibs = Models.ManifestHelper.localLibraries(manifest).map(\n ({ path }) => {\n return `~/${name}/${path.replace(\"src/\", \"\")}`;\n }\n );\n\n spinner.succeed(\n `Slice library \"${libGithubPath}\" was installed successfully`\n );\n\n void Tracker.get().trackDownloadLibrary(libGithubPath);\n return localLibs;\n } catch (error) {\n spinner.fail(`Error installing ${libGithubPath} lib!`);\n if (error instanceof Error) {\n console.error(error.message);\n }\n await Tracker.get().trackInitEndFail(\n Models.Frameworks.none,\n \"Failed to install ${libGithubPath} library\"\n );\n process.exit(-1);\n }\n}\n","import inquirer from \"inquirer\";\n\nexport async function promptToPushSlices(): Promise<boolean> {\n return inquirer\n .prompt<{ pushSlices: boolean }>([\n {\n type: \"confirm\",\n name: \"pushSlices\",\n default: false,\n message:\n \"Your repository already contains Slices. Do you want to continue pushing your local Slices?\",\n },\n ])\n .then((res) => res.pushSlices);\n}\n\nexport async function promptToPushCustomTypes(): Promise<boolean> {\n return inquirer\n .prompt<{ pushCustomTypes: boolean }>([\n {\n type: \"confirm\",\n name: \"pushCustomTypes\",\n default: false,\n message:\n \"Your repository already contains Custom Types. Do you want to continue pushing your local Custom Types?\",\n },\n ])\n .then((res) => res.pushCustomTypes);\n}\n","import { InitClient } from \"../../utils\";\nimport {\n Component,\n ComponentInfo,\n VariationSM,\n SliceSM,\n} from \"@slicemachine/core/build/models\";\nimport { Acl, ClientError } from \"@slicemachine/client\";\nimport { writeError } from \"../../utils/logs\";\n\nasync function updateVariationWithScreenshot(\n client: InitClient,\n acl: Acl,\n screenshots: ComponentInfo[\"screenshots\"],\n sliceId: SliceSM[\"id\"],\n variation: VariationSM\n): Promise<VariationSM> {\n const screenshot = screenshots[variation.id];\n if (!screenshot || !screenshot.path) return Promise.resolve(variation);\n\n return client\n .uploadScreenshot({\n acl,\n sliceId,\n variationId: variation.id,\n filePath: screenshot.path,\n })\n .then((screenshotUrl) => {\n return {\n ...variation,\n imageUrl: screenshotUrl,\n };\n })\n .catch((error: ClientError) => {\n writeError(\n `Couldn't upload screenshot slice: ${sliceId} - variation: ${variation.id}`\n );\n writeError(error.message, \"Full error:\");\n return variation;\n });\n}\n\nexport async function updateSlicesWithScreenshots(\n client: InitClient,\n acl: Acl,\n components: Array<Component>\n): Promise<Array<SliceSM>> {\n return Promise.all(\n components.map(async (component) => {\n const { screenshots, model } = component;\n\n const variationsUpdated: VariationSM[] = await Promise.all(\n model.variations.map(async (variation) =>\n updateVariationWithScreenshot(\n client,\n acl,\n screenshots,\n model.id,\n variation\n )\n )\n );\n\n return {\n ...model,\n variations: variationsUpdated,\n };\n })\n );\n}\n","import { Component, Manifest, Slices } from \"@slicemachine/core/build/models\";\nimport { Acl, ClientError } from \"@slicemachine/client\";\nimport { InitClient, logs } from \"../../utils\";\nimport * as Libraries from \"@slicemachine/core/build/libraries\";\nimport { promptToPushSlices } from \"./prompts\";\nimport { updateSlicesWithScreenshots } from \"./s3\";\nimport { writeError } from \"../../utils/logs\";\n\nexport async function sendSlices(\n client: InitClient,\n cwd: string,\n manifest: Manifest\n): Promise<boolean> {\n if (!manifest.libraries) return Promise.resolve(false); // No libraries defined\n\n const libraries = Libraries.libraries(cwd, manifest.libraries);\n const components = libraries.reduce<Array<Component>>((acc, lib) => {\n return [...acc, ...lib.components];\n }, []);\n\n if (components.length === 0) return Promise.resolve(false); // No slices to send found in the libraries\n\n const remoteSlicesIds: string[] = await client\n .getSlices()\n .then((slices) => slices.map((slice) => slice.id));\n\n // If the repository already has Slices, ask the user to confirm.\n if (remoteSlicesIds.length) {\n const pushAnyway = await promptToPushSlices();\n if (pushAnyway === false) return Promise.resolve(true);\n }\n\n const spinner = logs.spinner(\n \"Pushing existing Slice models to your repository\"\n );\n spinner.start();\n\n const acl: Acl | null = await client\n .createAcl()\n .catch((error: ClientError) => {\n writeError(\n \"Uploading screenshots for your slices failed, please contact us.\"\n );\n writeError(error.message, \"Full error:\");\n return null;\n });\n\n // If the acl failed to be created, don't mind the screenshots.\n const models = acl\n ? await updateSlicesWithScreenshots(client, acl, components)\n : components.map((component) => component.model);\n\n await Promise.all(\n models.map(async (model) => {\n const slice = Slices.fromSM(model);\n\n const promise = remoteSlicesIds.includes(slice.id)\n ? client.updateSlice(slice)\n : client.insertSlice(slice);\n\n return promise.catch((error: ClientError) => {\n logs.writeError(`Sending slice ${model.id} - ${error.message}`);\n\n // throwing the error again to stop the Promise.all\n throw error;\n });\n })\n ).catch(() => {\n // the error about the slice that failed to be pushed should be in the terminal already.\n process.exit(1);\n });\n\n spinner.succeed();\n return Promise.resolve(true);\n}\n","import { CustomType } from \"@prismicio/types-internal/lib/customtypes\";\nimport { Files, CustomTypesPaths } from \"@slicemachine/core/build/node-utils\";\nimport { isLeft } from \"fp-ts/lib/Either\";\nimport { promptToPushCustomTypes } from \"./prompts\";\nimport { InitClient, logs } from \"../../utils\";\nimport { ClientError } from \"@slicemachine/client\";\n\nexport function readLocalCustomTypes(cwd: string): Array<CustomType> {\n const customTypePaths = CustomTypesPaths(cwd);\n const dir = customTypePaths.value();\n\n if (Files.isDirectory(dir) === false) return [];\n\n const fileNames = Files.readDirectory(dir);\n\n const files = fileNames.reduce<Array<CustomType>>((acc, fileName) => {\n const filePath = customTypePaths.customType(fileName).model();\n const json = Files.safeReadJson(filePath);\n\n if (!json) return acc;\n\n const file = CustomType.decode(json);\n\n if (file instanceof Error) {\n logs.writeError(`reading ${filePath}: ${file.message}`);\n return acc;\n }\n if (isLeft(file)) {\n logs.writeError(`validating ${filePath}: ${JSON.stringify(file.left)}`);\n return acc;\n }\n\n return [...acc, file.right];\n }, []);\n\n return files;\n}\n\nexport async function sendCustomTypes(client: InitClient, cwd: string) {\n const localCustomTypes = readLocalCustomTypes(cwd);\n\n // nothing to push\n if (localCustomTypes.length === 0) return Promise.resolve(false);\n\n const remoteCustomTypeIds = await client\n .getCustomTypes()\n .then((customTypes) => customTypes.map((customType) => customType.id));\n\n if (remoteCustomTypeIds.length) {\n const shouldPush = await promptToPushCustomTypes();\n if (shouldPush === false) return Promise.resolve(false);\n }\n\n const spinner = logs.spinner(\n \"Pushing existing custom types to your repository\"\n );\n spinner.start();\n\n await Promise.all(\n localCustomTypes.map(async (customType) => {\n const promise = remoteCustomTypeIds.includes(customType.id)\n ? client.updateCustomType(customType)\n : client.insertCustomType(customType);\n\n return promise.catch((error: ClientError) => {\n logs.writeError(\n `Sending custom type ${customType.id} - ${error.message}`\n );\n\n // throwing the error again to stop the Promise.all\n throw error;\n });\n })\n ).catch(() => {\n // the error about the custom type that failed to be pushed should be in the terminal already.\n process.exit(1);\n });\n\n spinner.succeed();\n return Promise.resolve(true);\n}\n","import path from \"path\";\nimport fs from \"fs\";\nimport type { AxiosError } from \"axios\";\nimport { Models } from \"@slicemachine/core\";\n\nimport * as t from \"io-ts\";\nimport { getOrElseW } from \"fp-ts/Either\";\nimport { InitClient, logs, lsdir, lsfiles } from \"../../utils\";\nimport { PrismicSharedConfigManager } from \"@slicemachine/core/build/prismic/SharedConfig\";\nimport Tracker from \"../../utils/tracker\";\n\nconst SignatureFileReader = t.type({\n signature: t.string,\n});\n\ntype SignatureFile = t.TypeOf<typeof SignatureFileReader>;\n\nexport async function readSignatureFile(cwd: string): Promise<SignatureFile> {\n const pathToFile = path.join(cwd, \"documents\", \"index.json\");\n return fs.promises.readFile(pathToFile, \"utf-8\").then((res) => {\n const data = JSON.parse(res) as unknown;\n return getOrElseW(() => {\n throw new Error(\"Unable to read document signature file\");\n })(SignatureFileReader.decode(data));\n });\n}\n\nexport async function readDocuments(\n cwd: string\n): Promise<Record<string, unknown>> {\n const documentDir = path.join(cwd, \"documents\");\n const dirs = await lsdir(documentDir);\n\n const files = (await Promise.all(dirs.map((dir) => lsfiles(dir)))).flat();\n\n const documentObj = files.reduce<Record<string, unknown>>((acc, file) => {\n const filename: string = path.parse(file).name;\n const fileContent: string = fs.readFileSync(file, \"utf-8\");\n const json = JSON.parse(fileContent) as Record<string, unknown>;\n\n return { ...acc, [filename]: json };\n }, {});\n\n return documentObj;\n}\n\nexport async function sendDocuments(\n client: InitClient,\n cwd: string\n): Promise<boolean> {\n const pathToDocuments = path.join(cwd, \"documents\");\n const pathToSignatureFile = path.join(pathToDocuments, \"index.json\");\n\n // Without the signature, we can't push documents to Prismic.\n if (!fs.existsSync(pathToSignatureFile)) return Promise.resolve(false);\n\n const signatureObj = await readSignatureFile(cwd);\n const documents: Record<string, unknown> = await readDocuments(cwd);\n\n // No documents to push\n if (Object.keys(documents).length === 0) return Promise.resolve(false);\n\n const spinner = logs.spinner(\"Pushing existing documents to your repository\");\n spinner.start();\n\n return client\n .pushDocuments(\n signatureObj.signature,\n documents,\n PrismicSharedConfigManager.get().cookies\n )\n .then(() => {\n spinner.succeed();\n fs.rmSync(pathToDocuments, { recursive: true, force: true });\n return true;\n })\n .catch(async (e: AxiosError) => {\n spinner.fail();\n if (e.response?.data === \"Repository should not contain documents\") {\n logs.writeError(\n \"The selected repository is not empty, documents cannot be uploaded. Please choose an empty repository or delete the documents contained in your repository.\"\n );\n } else {\n logs.writeError(\n \"Sending documents failed, please try again. If the problem persists, contact us.\"\n );\n logs.writeError(`Full error: ${e.code || 500} - ${e.message}`);\n }\n await Tracker.get().trackInitEndFail(\n Models.Frameworks.none,\n \"Failed to push documents\"\n );\n process.exit(1);\n });\n}\n","import { retrieveManifest, Files } from \"@slicemachine/core/build/node-utils\";\nimport path from \"path\";\nimport fs from \"fs\";\nimport { sendSlices } from \"./starters/slices\";\nimport { sendCustomTypes } from \"./starters/custom-types\";\nimport { sendDocuments } from \"./starters/documents\";\nimport { InitClient } from \"../utils\";\n\nexport async function sendStarterData(\n client: InitClient,\n cwd: string,\n pushDocuments = true\n) {\n const manifest = retrieveManifest(cwd);\n const documentsPath = path.join(cwd, \"documents\");\n const hasDocuments = Files.exists(documentsPath);\n\n if (manifest.exists === false || hasDocuments === false)\n return Promise.resolve(false);\n\n if (manifest.content) await sendSlices(client, cwd, manifest.content);\n await sendCustomTypes(client, cwd);\n\n // If the user choose not to push documents, we still delete the documents folder.\n if (!pushDocuments) {\n fs.rmSync(documentsPath, { recursive: true, force: true });\n return Promise.resolve(true);\n }\n\n return sendDocuments(client, cwd);\n}\n","import { CONSTS } from \"@slicemachine/core\";\nimport * as NodeUtils from \"@slicemachine/core/build/node-utils\";\nimport { logs } from \"../utils\";\n\nconst defaultSliceMachineVersion = \"0.0.41\";\n\nconst getTheSliceMachineVersionInstalled = (\n packageJson: NodeUtils.FileContent<NodeUtils.JsonPackage>\n) => {\n const sliceMachinePackageInstalled = Object.entries(\n packageJson.content?.devDependencies || {}\n ).find((devDependency) => {\n if (devDependency[0] === CONSTS.SM_PACKAGE_NAME) {\n return devDependency;\n }\n });\n\n if (!sliceMachinePackageInstalled) {\n return defaultSliceMachineVersion;\n }\n\n const extractedVersion = extractVersionNumberFromSemver(\n sliceMachinePackageInstalled[1]\n );\n\n if (!extractedVersion) {\n return defaultSliceMachineVersion;\n }\n\n return extractedVersion;\n};\n\nconst extractVersionNumberFromSemver = (semver: string) => {\n const versionFound = semver.match(/\\d+\\.\\d+\\.\\d+/);\n\n if (versionFound && versionFound.length > 0) {\n return versionFound[0];\n }\n\n return null;\n};\n\nexport function setVersion(cwd: string): void {\n try {\n const manifest = NodeUtils.retrieveManifest(cwd);\n\n if (manifest.content?._latest) {\n return;\n }\n\n const packageJson = NodeUtils.retrieveJsonPackage(cwd);\n const sliceMachineVersionInstalled =\n getTheSliceMachineVersionInstalled(packageJson);\n\n NodeUtils.patchManifest(cwd, { _latest: sliceMachineVersionInstalled });\n } catch {\n logs.warning(\n \"Could not set _latest to installed slice-machine-ui version in sm.json\"\n );\n }\n}\n","import { ApplicationMode } from \"@slicemachine/client\";\nimport Prismic from \"@slicemachine/core/build/prismic\";\nimport Tracker from \"./utils/tracker\";\nimport {\n installRequiredDependencies,\n validatePkg,\n chooseOrCreateARepository,\n loginOrBypass,\n configureProject,\n displayFinalMessage,\n detectFramework,\n installLib,\n sendStarterData,\n setVersion,\n} from \"./steps\";\nimport {\n findArgument,\n findFlag,\n logs,\n getApplicationMode,\n InitClient,\n} from \"./utils\";\nimport { Models } from \"@slicemachine/core\";\n\nasync function init() {\n const cwd = findArgument(process.argv, \"cwd\") || process.cwd();\n const mode: ApplicationMode =\n getApplicationMode(findArgument(process.argv, \"mode\")) ||\n ApplicationMode.PROD;\n const lib: string | undefined = findArgument(process.argv, \"library\");\n const branch: string | undefined = findArgument(process.argv, \"branch\");\n const isTrackingAvailable: boolean =\n findArgument(process.argv, \"tracking\") !== \"false\";\n const preSelectedRepository: string | undefined = findArgument(\n process.argv,\n \"repository\"\n );\n const pushDocuments = !findFlag(process.argv, \"no-docs\");\n\n Tracker.get().initialize(\n process.env.PUBLIC_SM_INIT_SEGMENT_KEY ||\n \"JfTfmHaATChc4xueS7RcCBsixI71dJIJ\",\n isTrackingAvailable\n );\n\n void Tracker.get().trackInitStart(preSelectedRepository);\n\n // initializing the client with what we have for now.\n const client = new InitClient(\n mode,\n null,\n Prismic.PrismicSharedConfigManager.getAuth()\n );\n\n console.log(\n logs.purple(\n \"You're about to configure Slicemachine... Press ctrl + C to cancel\"\n )\n );\n\n // verify package.json file exist\n validatePkg(cwd);\n\n const user = await loginOrBypass(client);\n\n Tracker.get().identifyUser(user.shortId, user.intercomHash);\n void Tracker.get().trackInitIdentify();\n\n // detect the framework used by the project\n const frameworkResult = await detectFramework(cwd);\n\n // select the repository used with the project.\n const repository = await chooseOrCreateARepository(\n client,\n cwd,\n frameworkResult.value,\n preSelectedRepository\n );\n\n Tracker.get().setRepository(repository);\n client.updateRepository(repository);\n\n const sliceLibPath = lib ? await installLib(cwd, lib, branch) : undefined;\n\n const wasStarter = await sendStarterData(client, cwd, pushDocuments); // will be false if no sm.json is found\n\n // configure the SM.json file and the json package file of the project..\n await configureProject(\n client,\n cwd,\n repository,\n frameworkResult,\n sliceLibPath,\n isTrackingAvailable\n );\n\n // Install the required dependencies in the project.\n await installRequiredDependencies(\n cwd,\n frameworkResult.value,\n wasStarter,\n frameworkResult.version\n );\n\n setVersion(cwd);\n\n // Ask the user to run slice-machine.\n displayFinalMessage(cwd, wasStarter, repository, client.apisEndpoints.Wroom);\n}\n\ninit()\n .then(() => {\n process.exit(0);\n })\n .catch(async (error) => {\n if (error instanceof Error) logs.writeError(error.message);\n else console.error(error);\n await Tracker.get().trackInitEndFail(\n Models.Frameworks.none,\n \"Failed to initialise Slice Machine.\"\n );\n });\n"],"names":["uuidv4","ServerAnalytics","chalk","underline","bold","spinner","ora","writeError","Utils","CONSTS","hapi","PrismicSharedConfigManager","open","Endpoints","Client","getAndValidateResponse","t","Models","parse","fs","path","debug","MAX_LENGTH","MAX_SAFE_INTEGER","require$$0","require$$1","parseOptions","compareIdentifiers","re","require$$2","require$$3","require$$4","SemVer","Yallist","compare","eq","neq","gt","gte","lt","lte","require$$5","cmp","Comparator","Range","semverCoerce","semverSatisfies","util","exec","ApplicationMode","NodeUtils","logs.spinner","logs.writeWarning","logs.writeError","logs.bold","logs.cyan","logs.writeInfo","inquirer","logs.purple","Separator","logs.writeCheck","Prismic","logs.white","axios","tmp","AdmZip","fsExtra","getOrElseW","Libraries","models","Slices","CustomTypesPaths","Files","CustomType","isLeft","retrieveManifest","logs.warning","client"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@slicemachine/init",
3
- "version": "1.1.16-dev-alpha.24",
3
+ "version": "1.1.16-dev-ct-slice-delete.4",
4
4
  "description": "The easiest way to add Slice Machine to your project",
5
5
  "license": "MIT",
6
6
  "bin": {
@@ -16,13 +16,13 @@
16
16
  "prepublishOnly": "npm run test && npm run build",
17
17
  "test": "jest",
18
18
  "tsc": "tsc --project tsconfig.json --noEmit",
19
- "watch": "tsc --project tsconfig.json --noEmit --watch"
19
+ "tsc:watch": "tsc --project tsconfig.json --noEmit --watch"
20
20
  },
21
21
  "dependencies": {
22
22
  "@hapi/hapi": "^20.2.0",
23
23
  "@prismicio/types-internal": "^1.5.3",
24
- "@slicemachine/client": "1.1.16-dev-alpha.24",
25
- "@slicemachine/core": "1.1.16-dev-alpha.24",
24
+ "@slicemachine/client": "1.1.16-dev-ct-slice-delete.4",
25
+ "@slicemachine/core": "1.1.16-dev-ct-slice-delete.4",
26
26
  "adm-zip": "^0.5.9",
27
27
  "analytics-node": "^6.0.0",
28
28
  "axios": "^0.24.0",
@@ -67,5 +67,5 @@
67
67
  "engines": {
68
68
  "node": ">=14"
69
69
  },
70
- "gitHead": "de7573ab8c9c1d4d5fcfab43c98426ec73186d3e"
70
+ "gitHead": "4b999200971262642f363f854be0639dc25559a6"
71
71
  }