This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
admin-panel/graphql-types/node_modules/@graphql-tools/prisma-loader/es5/index.esm.js.map

1 line
139 KiB
Plaintext

{"version":3,"file":"index.esm.js","sources":["../../../dist-es5/loaders/prisma/src/prisma-yml/constants.js","../../../dist-es5/loaders/prisma/src/prisma-yml/utils/parseEndpoint.js","../../../dist-es5/loaders/prisma/src/prisma-yml/utils/getProxyAgent.js","../../../dist-es5/loaders/prisma/src/prisma-yml/Cluster.js","../../../dist-es5/loaders/prisma/src/prisma-yml/prisma-json-schema.js","../../../dist-es5/loaders/prisma/src/prisma-yml/Output.js","../../../dist-es5/loaders/prisma/src/prisma-yml/Variables.js","../../../dist-es5/loaders/prisma/src/prisma-yml/yaml.js","../../../dist-es5/loaders/prisma/src/prisma-yml/utils/yamlComment.js","../../../dist-es5/loaders/prisma/src/prisma-yml/PrismaDefinition.js","../../../dist-es5/loaders/prisma/src/prisma-yml/errors/ClusterNotFound.js","../../../dist-es5/loaders/prisma/src/prisma-yml/errors/ClusterNotSet.js","../../../dist-es5/loaders/prisma/src/prisma-yml/Environment.js","../../../dist-es5/loaders/prisma/src/prisma-yml/errors/StageNotFound.js","../../../dist-es5/loaders/prisma/src/index.js"],"sourcesContent":["import { invert } from 'lodash';\nexport var cloudApiEndpoint = process.env.CLOUD_API_ENDPOINT || 'https://api.cloud.prisma.sh';\nexport var clusterEndpointMap = {\n 'prisma-eu1': 'https://eu1.prisma.sh',\n 'prisma-us1': 'https://us1.prisma.sh',\n};\nexport var clusterEndpointMapReverse = invert(clusterEndpointMap);\n//# sourceMappingURL=constants.js.map","import { clusterEndpointMapReverse } from '../constants';\nimport { URL } from 'url';\nfunction getClusterName(origin) {\n if (clusterEndpointMapReverse[origin]) {\n return clusterEndpointMapReverse[origin];\n }\n if (origin.endsWith('prisma.sh')) {\n return origin.split('_')[0].replace(/https?:\\/\\//, '');\n }\n if (isLocal(origin)) {\n return 'local';\n }\n return 'default';\n}\nvar getWorkspaceFromPrivateOrigin = function (origin) {\n var split = origin.split('_');\n if (split.length > 1) {\n return split[1].split('.')[0];\n }\n return null;\n};\nvar isLocal = function (origin) { return origin.includes('localhost') || origin.includes('127.0.0.1'); };\nexport function parseEndpoint(endpoint) {\n /*\n Terminology:\n local - hosted locally using docker and accessed using localhost or prisma or local web proxy like domain.dev\n shared - demo server\n isPrivate - private hosted by Prisma or private and self-hosted, important that in our terminology a local server is not private\n */\n var url = new URL(endpoint);\n var splittedPath = url.pathname.split('/');\n // assuming, that the pathname always starts with a leading /, we always can ignore the first element of the split array\n var service = splittedPath.length > 3 ? splittedPath[2] : splittedPath[1] || 'default';\n var stage = splittedPath.length > 3 ? splittedPath[3] : splittedPath[2] || 'default';\n // This logic might break for self-hosted servers incorrectly yielding a \"workspace\" simply if the UX has\n // enough \"/\"es like if https://custom.dev/not-a-workspace/ is the base Prisma URL then for default/default service/stage\n // pair. This function would incorrectly return not-a-workspace as a workspace.\n var workspaceSlug = splittedPath.length > 3 ? splittedPath[1] : null;\n var shared = ['eu1.prisma.sh', 'us1.prisma.sh'].includes(url.host);\n // When using localAliases, do an exact match because of 'prisma' option which is added for local docker networking access\n var localAliases = ['localhost', '127.0.0.1', 'prisma'];\n var isPrivate = !shared && !localAliases.includes(url.hostname);\n var local = !shared && !isPrivate && !workspaceSlug;\n if (isPrivate && !workspaceSlug) {\n workspaceSlug = getWorkspaceFromPrivateOrigin(url.origin);\n }\n return {\n clusterBaseUrl: url.origin,\n service: service,\n stage: stage,\n local: local,\n isPrivate: isPrivate,\n shared: shared,\n workspaceSlug: workspaceSlug,\n clusterName: getClusterName(url.origin),\n };\n}\n//# sourceMappingURL=parseEndpoint.js.map","'use strict';\nimport HttpsProxyAgent from 'https-proxy-agent';\nimport HttpProxyAgent from 'http-proxy-agent';\n// code from https://raw.githubusercontent.com/request/request/5ba8eb44da7cd639ca21070ea9be20d611b85f66/lib/getProxyFromURI.js\nfunction formatHostname(hostname) {\n // canonicalize the hostname, so that 'oogle.com' won't match 'google.com'\n return hostname.replace(/^\\.*/, '.').toLowerCase();\n}\nfunction parseNoProxyZone(zone) {\n zone = zone.trim().toLowerCase();\n var zoneParts = zone.split(':', 2);\n var zoneHost = formatHostname(zoneParts[0]);\n var zonePort = zoneParts[1];\n var hasPort = zone.indexOf(':') > -1;\n return { hostname: zoneHost, port: zonePort, hasPort: hasPort };\n}\nfunction uriInNoProxy(uri, noProxy) {\n var port = uri.port || (uri.protocol === 'https:' ? '443' : '80');\n var hostname = formatHostname(uri.hostname);\n var noProxyList = noProxy.split(',');\n // iterate through the noProxyList until it finds a match.\n return noProxyList.map(parseNoProxyZone).some(function (noProxyZone) {\n var isMatchedAt = hostname.indexOf(noProxyZone.hostname);\n var hostnameMatched = isMatchedAt > -1 && isMatchedAt === hostname.length - noProxyZone.hostname.length;\n if (noProxyZone.hasPort) {\n return port === noProxyZone.port && hostnameMatched;\n }\n return hostnameMatched;\n });\n}\nfunction getProxyFromURI(uri) {\n // Decide the proper request proxy to use based on the request URI object and the\n // environmental variables (NO_PROXY, HTTP_PROXY, etc.)\n // respect NO_PROXY environment variables (see: http://lynx.isc.org/current/breakout/lynx_help/keystrokes/environments.html)\n var noProxy = process.env.NO_PROXY || process.env.no_proxy || '';\n // if the noProxy is a wildcard then return null\n if (noProxy === '*') {\n return null;\n }\n // if the noProxy is not empty and the uri is found return null\n if (noProxy !== '' && uriInNoProxy(uri, noProxy)) {\n return null;\n }\n // Check for HTTP or HTTPS Proxy in environment Else default to null\n if (uri.protocol === 'http:') {\n return process.env.HTTP_PROXY || process.env.http_proxy || null;\n }\n if (uri.protocol === 'https:') {\n return (process.env.HTTPS_PROXY || process.env.https_proxy || process.env.HTTP_PROXY || process.env.http_proxy || null);\n }\n // if none of that works, return null\n // (What uri protocol are you using then?)\n return null;\n}\nexport function getProxyAgent(url) {\n var uri = new URL(url);\n var proxy = getProxyFromURI(uri);\n if (!proxy) {\n return undefined;\n }\n var proxyUri = new URL(proxy);\n if (proxyUri.protocol === 'http:') {\n // eslint-disable-next-line\n // @ts-ignore\n return new HttpProxyAgent(proxy);\n }\n if (proxyUri.protocol === 'https:') {\n // eslint-disable-next-line\n // @ts-ignore\n return new HttpsProxyAgent(proxy);\n }\n return undefined;\n}\n//# sourceMappingURL=getProxyAgent.js.map","import { __awaiter, __generator } from \"tslib\";\nimport 'isomorphic-fetch';\nimport * as jwt from 'jsonwebtoken';\nimport { cloudApiEndpoint } from './constants';\nimport { GraphQLClient } from 'graphql-request';\nimport chalk from 'chalk';\nimport { getProxyAgent } from './utils/getProxyAgent';\nvar debug = require('debug')('environment');\nvar Cluster = /** @class */ (function () {\n function Cluster(out, name, baseUrl, clusterSecret, local, shared, isPrivate, workspaceSlug) {\n if (local === void 0) { local = true; }\n if (shared === void 0) { shared = false; }\n if (isPrivate === void 0) { isPrivate = false; }\n this.out = out;\n this.name = name;\n // All `baseUrl` extension points in this class\n // adds a trailing slash. Here we remove it from\n // the passed `baseUrl` in order to avoid double\n // slashes.\n this.baseUrl = baseUrl.replace(/\\/$/, '');\n this.clusterSecret = clusterSecret;\n this.local = local;\n this.shared = shared;\n this.isPrivate = isPrivate;\n this.workspaceSlug = workspaceSlug;\n this.hasOldDeployEndpoint = false;\n }\n Cluster.prototype.getToken = function (serviceName, workspaceSlug, stageName) {\n return __awaiter(this, void 0, void 0, function () {\n var needsAuth;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.needsAuth()];\n case 1:\n needsAuth = _a.sent();\n debug({ needsAuth: needsAuth });\n if (!needsAuth) {\n return [2 /*return*/, null];\n }\n if (this.name === 'shared-public-demo') {\n return [2 /*return*/, ''];\n }\n if (this.isPrivate && process.env.PRISMA_MANAGEMENT_API_SECRET) {\n return [2 /*return*/, this.getLocalToken()];\n }\n if (this.shared || (this.isPrivate && !process.env.PRISMA_MANAGEMENT_API_SECRET)) {\n return [2 /*return*/, this.generateClusterToken(serviceName, workspaceSlug, stageName)];\n }\n else {\n return [2 /*return*/, this.getLocalToken()];\n }\n return [2 /*return*/];\n }\n });\n });\n };\n Cluster.prototype.getLocalToken = function () {\n if (!this.clusterSecret && !process.env.PRISMA_MANAGEMENT_API_SECRET) {\n return null;\n }\n if (!this.cachedToken) {\n var grants = [{ target: \"*/*\", action: '*' }];\n var secret = process.env.PRISMA_MANAGEMENT_API_SECRET || this.clusterSecret;\n try {\n var algorithm = process.env.PRISMA_MANAGEMENT_API_SECRET ? 'HS256' : 'RS256';\n this.cachedToken = jwt.sign({ grants: grants }, secret, {\n expiresIn: '5y',\n algorithm: algorithm,\n });\n }\n catch (e) {\n throw new Error(\"Could not generate token for cluster \" + chalk.bold(this.getDeployEndpoint()) + \". Did you provide the env var PRISMA_MANAGEMENT_API_SECRET?\\nOriginal error: \" + e.message);\n }\n }\n return this.cachedToken;\n };\n Object.defineProperty(Cluster.prototype, \"cloudClient\", {\n get: function () {\n return new GraphQLClient(cloudApiEndpoint, {\n headers: {\n Authorization: \"Bearer \" + this.clusterSecret,\n },\n agent: getProxyAgent(cloudApiEndpoint),\n });\n },\n enumerable: false,\n configurable: true\n });\n Cluster.prototype.generateClusterToken = function (serviceName, workspaceSlug, stageName) {\n if (workspaceSlug === void 0) { workspaceSlug = this.workspaceSlug || '*'; }\n return __awaiter(this, void 0, void 0, function () {\n var query, clusterToken;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n query = \"\\n mutation ($input: GenerateClusterTokenRequest!) {\\n generateClusterToken(input: $input) {\\n clusterToken\\n }\\n }\\n \";\n return [4 /*yield*/, this.cloudClient.request(query, {\n input: {\n workspaceSlug: workspaceSlug,\n clusterName: this.name,\n serviceName: serviceName,\n stageName: stageName,\n },\n })];\n case 1:\n clusterToken = (_a.sent()).generateClusterToken.clusterToken;\n return [2 /*return*/, clusterToken];\n }\n });\n });\n };\n Cluster.prototype.addServiceToCloudDBIfMissing = function (serviceName, workspaceSlug, stageName) {\n if (workspaceSlug === void 0) { workspaceSlug = this.workspaceSlug; }\n return __awaiter(this, void 0, void 0, function () {\n var query, serviceCreated;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n query = \"\\n mutation ($input: GenerateClusterTokenRequest!) {\\n addServiceToCloudDBIfMissing(input: $input)\\n }\\n \";\n return [4 /*yield*/, this.cloudClient.request(query, {\n input: {\n workspaceSlug: workspaceSlug,\n clusterName: this.name,\n serviceName: serviceName,\n stageName: stageName,\n },\n })];\n case 1:\n serviceCreated = _a.sent();\n return [2 /*return*/, serviceCreated.addServiceToCloudDBIfMissing];\n }\n });\n });\n };\n Cluster.prototype.getApiEndpoint = function (service, stage, workspaceSlug) {\n if (!this.shared && service === 'default' && stage === 'default') {\n return this.baseUrl;\n }\n if (!this.shared && stage === 'default') {\n return this.baseUrl + \"/\" + service;\n }\n if (this.isPrivate || this.local) {\n return this.baseUrl + \"/\" + service + \"/\" + stage;\n }\n var workspaceString = workspaceSlug ? workspaceSlug + \"/\" : '';\n return this.baseUrl + \"/\" + workspaceString + service + \"/\" + stage;\n };\n Cluster.prototype.getWSEndpoint = function (service, stage, workspaceSlug) {\n return this.getApiEndpoint(service, stage, workspaceSlug).replace(/^http/, 'ws');\n };\n Cluster.prototype.getImportEndpoint = function (service, stage, workspaceSlug) {\n return this.getApiEndpoint(service, stage, workspaceSlug) + \"/import\";\n };\n Cluster.prototype.getExportEndpoint = function (service, stage, workspaceSlug) {\n return this.getApiEndpoint(service, stage, workspaceSlug) + \"/export\";\n };\n Cluster.prototype.getDeployEndpoint = function () {\n return this.baseUrl + \"/\" + (this.hasOldDeployEndpoint ? 'cluster' : 'management');\n };\n Cluster.prototype.isOnline = function () {\n return __awaiter(this, void 0, void 0, function () {\n var version;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.getVersion()];\n case 1:\n version = _a.sent();\n return [2 /*return*/, typeof version === 'string'];\n }\n });\n });\n };\n Cluster.prototype.getVersion = function () {\n return __awaiter(this, void 0, void 0, function () {\n var result, res, data, errors, e_1, result, res, data, e_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 5, , 6]);\n return [4 /*yield*/, this.request(\"{\\n serverInfo {\\n version\\n }\\n }\")];\n case 1:\n result = _a.sent();\n return [4 /*yield*/, result.json()];\n case 2:\n res = _a.sent();\n data = res.data, errors = res.errors;\n if (!(errors && errors[0].code === 3016 && errors[0].message.includes('management@default'))) return [3 /*break*/, 4];\n this.hasOldDeployEndpoint = true;\n return [4 /*yield*/, this.getVersion()];\n case 3: return [2 /*return*/, _a.sent()];\n case 4:\n if (data && data.serverInfo) {\n return [2 /*return*/, data.serverInfo.version];\n }\n return [3 /*break*/, 6];\n case 5:\n e_1 = _a.sent();\n debug(e_1);\n return [3 /*break*/, 6];\n case 6:\n _a.trys.push([6, 9, , 10]);\n return [4 /*yield*/, this.request(\"{\\n serverInfo {\\n version\\n }\\n }\")];\n case 7:\n result = _a.sent();\n return [4 /*yield*/, result.json()];\n case 8:\n res = _a.sent();\n data = res.data;\n return [2 /*return*/, data.serverInfo.version];\n case 9:\n e_2 = _a.sent();\n debug(e_2);\n return [3 /*break*/, 10];\n case 10: return [2 /*return*/, null];\n }\n });\n });\n };\n Cluster.prototype.request = function (query, variables) {\n return fetch(this.getDeployEndpoint(), {\n method: 'post',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n query: query,\n variables: variables,\n }),\n agent: getProxyAgent(this.getDeployEndpoint()),\n });\n };\n Cluster.prototype.needsAuth = function () {\n return __awaiter(this, void 0, void 0, function () {\n var result, data, e_3;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 3, , 4]);\n return [4 /*yield*/, this.request(\"{\\n listProjects {\\n name\\n }\\n }\")];\n case 1:\n result = _a.sent();\n return [4 /*yield*/, result.json()];\n case 2:\n data = _a.sent();\n if (data.errors && data.errors.length > 0) {\n return [2 /*return*/, true];\n }\n return [2 /*return*/, false];\n case 3:\n e_3 = _a.sent();\n debug('Assuming that the server needs authentication');\n debug(e_3.toString());\n return [2 /*return*/, true];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n Cluster.prototype.toJSON = function () {\n return {\n name: this.name,\n baseUrl: this.baseUrl,\n local: this.local,\n clusterSecret: this.clusterSecret,\n shared: this.shared,\n isPrivate: this.isPrivate,\n workspaceSlug: this.workspaceSlug,\n };\n };\n return Cluster;\n}());\nexport { Cluster };\n//# sourceMappingURL=Cluster.js.map","var schema = JSON.parse(\"{\\n \\\"$schema\\\": \\\"http://json-schema.org/draft-07/schema#\\\",\\n \\\"title\\\": \\\"JSON schema for Prisma prisma.yml files\\\",\\n \\\"definitions\\\": {\\n \\\"subscription\\\": {\\n \\\"description\\\": \\\"A piece of code that you should run.\\\",\\n \\\"type\\\": \\\"object\\\",\\n \\\"properties\\\": {\\n \\\"query\\\": {\\n \\\"type\\\": \\\"string\\\"\\n },\\n \\\"webhook\\\": {\\n \\\"oneOf\\\": [\\n {\\n \\\"type\\\": \\\"string\\\"\\n },\\n {\\n \\\"type\\\": \\\"object\\\",\\n \\\"properties\\\": {\\n \\\"url\\\": {\\n \\\"type\\\": \\\"string\\\"\\n },\\n \\\"headers\\\": {\\n \\\"type\\\": \\\"object\\\"\\n }\\n },\\n \\\"required\\\": [\\\"url\\\"]\\n }\\n ]\\n }\\n },\\n \\\"required\\\": [\\\"query\\\", \\\"webhook\\\"]\\n }\\n },\\n \\\"properties\\\": {\\n \\\"datamodel\\\": {\\n \\\"description\\\": \\\"Type definitions for database models, relations, enums and other types\\\",\\n \\\"type\\\": [\\\"string\\\", \\\"array\\\"],\\n \\\"items\\\": {\\n \\\"type\\\": [\\\"string\\\", \\\"array\\\"]\\n }\\n },\\n \\\"secret\\\": {\\n \\\"description\\\": \\\"Secret for securing the API Endpoint\\\",\\n \\\"type\\\": \\\"string\\\",\\n \\\"items\\\": {\\n \\\"type\\\": \\\"string\\\"\\n }\\n },\\n \\\"disableAuth\\\": {\\n \\\"description\\\": \\\"Disable authentication for the endpoint\\\",\\n \\\"type\\\": \\\"boolean\\\",\\n \\\"items\\\": {\\n \\\"type\\\": \\\"boolean\\\"\\n }\\n },\\n \\\"generate\\\": {\\n \\\"type\\\": \\\"array\\\",\\n \\\"items\\\": {\\n \\\"type\\\": \\\"object\\\",\\n \\\"properties\\\": {\\n \\\"generator\\\": {\\n \\\"type\\\": \\\"string\\\"\\n },\\n \\\"output\\\": {\\n \\\"type\\\": \\\"string\\\"\\n }\\n }\\n }\\n },\\n \\\"seed\\\": {\\n \\\"description\\\": \\\"Database seed\\\",\\n \\\"type\\\": \\\"object\\\",\\n \\\"properties\\\": {\\n \\\"import\\\": {\\n \\\"type\\\": \\\"string\\\"\\n },\\n \\\"run\\\": {\\n \\\"type\\\": \\\"string\\\"\\n }\\n }\\n },\\n \\\"subscriptions\\\": {\\n \\\"description\\\": \\\"All server-side subscriptions\\\",\\n \\\"type\\\": \\\"object\\\",\\n \\\"additionalProperties\\\": {\\n \\\"$ref\\\": \\\"#/definitions/subscription\\\"\\n }\\n },\\n \\\"custom\\\": {\\n \\\"description\\\": \\\"Custom field to use in variable interpolations with ${self:custom.field}\\\",\\n \\\"type\\\": \\\"object\\\"\\n },\\n \\\"hooks\\\": {\\n \\\"description\\\": \\\"Command hooks. Current available hooks are: post-deploy.\\\",\\n \\\"type\\\": \\\"object\\\"\\n },\\n \\\"endpoint\\\": {\\n \\\"description\\\": \\\"Endpoint the service will be reachable at. This also determines the cluster the service will deployed to.\\\",\\n \\\"type\\\": \\\"string\\\",\\n \\\"items\\\": {\\n \\\"type\\\": \\\"string\\\"\\n }\\n },\\n \\\"databaseType\\\": {\\n \\\"type\\\": \\\"string\\\",\\n \\\"oneOf\\\": [{ \\\"enum\\\": [\\\"relational\\\", \\\"document\\\"] }]\\n }\\n },\\n \\\"additionalProperties\\\": false\\n}\");\nexport default schema;\n//# sourceMappingURL=prisma-json-schema.js.map","var Output = /** @class */ (function () {\n function Output() {\n }\n Output.prototype.log = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n console.log(args);\n };\n Output.prototype.warn = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n console.warn(args);\n };\n Output.prototype.getErrorPrefix = function (fileName, type) {\n if (type === void 0) { type = 'error'; }\n return \"[\" + type.toUpperCase() + \"] in \" + fileName + \": \";\n };\n return Output;\n}());\nexport { Output };\nvar TestOutput = /** @class */ (function () {\n function TestOutput() {\n this.output = [];\n }\n TestOutput.prototype.log = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n this.output = this.output.concat(args);\n };\n TestOutput.prototype.warn = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n this.output = this.output.concat(args);\n };\n TestOutput.prototype.getErrorPrefix = function (fileName, type) {\n if (type === void 0) { type = 'error'; }\n return \"[\" + type.toUpperCase() + \"] in \" + fileName + \": \";\n };\n return TestOutput;\n}());\nexport { TestOutput };\n//# sourceMappingURL=Output.js.map","import * as lodash from 'lodash';\n// eslint-disable-next-line\n// @ts-ignore\nimport replaceall from 'replaceall';\n// eslint-disable-next-line\n// @ts-ignore\nimport * as BbPromise from 'bluebird';\nimport { Output } from './Output';\nvar Variables = /** @class */ (function () {\n function Variables(fileName, options, out, envVars) {\n if (options === void 0) { options = {}; }\n if (out === void 0) { out = new Output(); }\n this.overwriteSyntax = /,/g;\n this.envRefSyntax = /^env:/g;\n this.selfRefSyntax = /^self:/g;\n this.stringRefSyntax = /('.*')|(\".*\")/g;\n this.optRefSyntax = /^opt:/g;\n // eslint-disable-next-line\n this.variableSyntax = new RegExp(\n // eslint-disable-next-line\n '\\\\${([ ~:a-zA-Z0-9._\\'\",\\\\-\\\\/\\\\(\\\\)]+?)}', 'g');\n this.out = out;\n this.fileName = fileName;\n this.options = options;\n this.envVars = envVars || process.env;\n }\n Variables.prototype.populateJson = function (json) {\n var _this = this;\n this.json = json;\n return this.populateObject(this.json).then(function () {\n return BbPromise.resolve(_this.json);\n });\n };\n Variables.prototype.populateObject = function (objectToPopulate) {\n var _this = this;\n var populateAll = [];\n var deepMapValues = function (object, callback, propertyPath) {\n var deepMapValuesIteratee = function (value, key) {\n return deepMapValues(value, callback, propertyPath ? propertyPath.concat(key) : [key]);\n };\n if (lodash.isArray(object)) {\n return lodash.map(object, deepMapValuesIteratee);\n }\n else if (lodash.isObject(object) && !lodash.isDate(object) && !lodash.isFunction(object)) {\n return lodash.extend({}, object, lodash.mapValues(object, deepMapValuesIteratee));\n }\n return callback(object, propertyPath);\n };\n deepMapValues(objectToPopulate, function (property, propertyPath) {\n if (typeof property === 'string') {\n var populateSingleProperty = _this.populateProperty(property, true)\n .then(function (newProperty) { return lodash.set(objectToPopulate, propertyPath, newProperty); })\n .return();\n populateAll.push(populateSingleProperty);\n }\n });\n return BbPromise.all(populateAll).then(function () { return objectToPopulate; });\n };\n Variables.prototype.populateProperty = function (propertyParam, populateInPlace) {\n var _this = this;\n var property = populateInPlace ? propertyParam : lodash.cloneDeep(propertyParam);\n var allValuesToPopulate = [];\n var warned = false;\n if (typeof property === 'string' && property.match(this.variableSyntax)) {\n property.match(this.variableSyntax).forEach(function (matchedString) {\n var variableString = matchedString\n .replace(_this.variableSyntax, function (_, varName) { return varName.trim(); })\n .replace(/\\s/g, '');\n var singleValueToPopulate = null;\n if (variableString.match(_this.overwriteSyntax)) {\n singleValueToPopulate = _this.overwrite(variableString);\n }\n else {\n singleValueToPopulate = _this.getValueFromSource(variableString).then(function (valueToPopulate) {\n if (typeof valueToPopulate === 'object') {\n return _this.populateObject(valueToPopulate);\n }\n return valueToPopulate;\n });\n }\n singleValueToPopulate = singleValueToPopulate.then(function (valueToPopulate) {\n if (_this.warnIfNotFound(variableString, valueToPopulate)) {\n warned = true;\n }\n return _this.populateVariable(property, matchedString, valueToPopulate).then(function (newProperty) {\n property = newProperty;\n return BbPromise.resolve(property);\n });\n });\n allValuesToPopulate.push(singleValueToPopulate);\n });\n return BbPromise.all(allValuesToPopulate).then(function () {\n if (property !== _this.json && !warned) {\n return _this.populateProperty(property);\n }\n return BbPromise.resolve(property);\n });\n }\n return BbPromise.resolve(property);\n };\n Variables.prototype.populateVariable = function (propertyParam, matchedString, valueToPopulate) {\n var property = propertyParam;\n if (typeof valueToPopulate === 'string') {\n property = replaceall(matchedString, valueToPopulate, property);\n }\n else {\n if (property !== matchedString) {\n if (typeof valueToPopulate === 'number') {\n property = replaceall(matchedString, String(valueToPopulate), property);\n }\n else {\n var errorMessage = [\n 'Trying to populate non string value into',\n \" a string for variable \" + matchedString + \".\",\n ' Please make sure the value of the property is a string.',\n ].join('');\n this.out.warn(this.out.getErrorPrefix(this.fileName, 'warning') + errorMessage);\n }\n return BbPromise.resolve(property);\n }\n property = valueToPopulate;\n }\n return BbPromise.resolve(property);\n };\n Variables.prototype.overwrite = function (variableStringsString) {\n var _this = this;\n var finalValue;\n var variableStringsArray = variableStringsString.split(',');\n var allValuesFromSource = variableStringsArray.map(function (variableString) {\n return _this.getValueFromSource(variableString);\n });\n return BbPromise.all(allValuesFromSource).then(function (valuesFromSources) {\n valuesFromSources.find(function (valueFromSource) {\n finalValue = valueFromSource;\n return (finalValue !== null &&\n typeof finalValue !== 'undefined' &&\n !(typeof finalValue === 'object' && lodash.isEmpty(finalValue)));\n });\n return BbPromise.resolve(finalValue);\n });\n };\n Variables.prototype.getValueFromSource = function (variableString) {\n if (variableString.match(this.envRefSyntax)) {\n return this.getValueFromEnv(variableString);\n }\n else if (variableString.match(this.optRefSyntax)) {\n return this.getValueFromOptions(variableString);\n }\n else if (variableString.match(this.selfRefSyntax)) {\n return this.getValueFromSelf(variableString);\n }\n else if (variableString.match(this.stringRefSyntax)) {\n return this.getValueFromString(variableString);\n }\n var errorMessage = [\n \"Invalid variable reference syntax for variable \" + variableString + \".\",\n ' You can only reference env vars, options, & files.',\n ' You can check our docs for more info.',\n ].join('');\n this.out.warn(this.out.getErrorPrefix(this.fileName, 'warning') + errorMessage);\n };\n Variables.prototype.getValueFromEnv = function (variableString) {\n var requestedEnvVar = variableString.split(':')[1];\n var valueToPopulate = requestedEnvVar !== '' || '' in this.envVars ? this.envVars[requestedEnvVar] : this.envVars;\n return BbPromise.resolve(valueToPopulate);\n };\n Variables.prototype.getValueFromString = function (variableString) {\n var valueToPopulate = variableString.replace(/^['\"]|['\"]$/g, '');\n return BbPromise.resolve(valueToPopulate);\n };\n Variables.prototype.getValueFromOptions = function (variableString) {\n var requestedOption = variableString.split(':')[1];\n var valueToPopulate = requestedOption !== '' || '' in this.options ? this.options[requestedOption] : this.options;\n return BbPromise.resolve(valueToPopulate);\n };\n Variables.prototype.getValueFromSelf = function (variableString) {\n var valueToPopulate = this.json;\n var deepProperties = variableString.split(':')[1].split('.');\n return this.getDeepValue(deepProperties, valueToPopulate);\n };\n Variables.prototype.getDeepValue = function (deepProperties, valueToPopulate) {\n var _this = this;\n return BbPromise.reduce(deepProperties, function (computedValueToPopulateParam, subProperty) {\n var computedValueToPopulate = computedValueToPopulateParam;\n if (typeof computedValueToPopulate === 'undefined') {\n computedValueToPopulate = {};\n }\n else if (subProperty !== '' || '' in computedValueToPopulate) {\n computedValueToPopulate = computedValueToPopulate[subProperty];\n }\n if (typeof computedValueToPopulate === 'string' && computedValueToPopulate.match(_this.variableSyntax)) {\n return _this.populateProperty(computedValueToPopulate);\n }\n return BbPromise.resolve(computedValueToPopulate);\n }, valueToPopulate);\n };\n Variables.prototype.warnIfNotFound = function (variableString, valueToPopulate) {\n if (valueToPopulate === null ||\n typeof valueToPopulate === 'undefined' ||\n (typeof valueToPopulate === 'object' && lodash.isEmpty(valueToPopulate))) {\n var varType = void 0;\n if (variableString.match(this.envRefSyntax)) {\n varType = 'environment variable';\n }\n else if (variableString.match(this.optRefSyntax)) {\n varType = 'option';\n }\n else if (variableString.match(this.selfRefSyntax)) {\n varType = 'self reference';\n }\n this.out.warn(this.out.getErrorPrefix(this.fileName, 'warning') +\n (\"A valid \" + varType + \" to satisfy the declaration '\" + variableString + \"' could not be found.\"));\n return true;\n }\n return false;\n };\n return Variables;\n}());\nexport { Variables };\n//# sourceMappingURL=Variables.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport Ajv from 'ajv';\nimport * as yaml from 'js-yaml';\nimport * as fs from 'fs';\nimport schema from './prisma-json-schema';\nimport { Variables } from './Variables';\nimport { Output } from './Output';\nimport stringify from 'json-stable-stringify';\nvar debug = require('debug')('yaml');\nvar ajv = new Ajv();\nvar validate = ajv.compile(schema);\n// this is used by the playground, which accepts additional properties\nvar validateGraceful = ajv.compile(__assign(__assign({}, schema), { additionalProperties: true }));\nvar cache = {};\nexport function readDefinition(filePath, args, out, envVars, graceful) {\n if (out === void 0) { out = new Output(); }\n return __awaiter(this, void 0, void 0, function () {\n var file, json, jsonCopy, vars, populatedJson, valid, errorMessage;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n try {\n fs.accessSync(filePath);\n }\n catch (_b) {\n throw new Error(filePath + \" could not be found.\");\n }\n file = fs.readFileSync(filePath, 'utf-8');\n json = yaml.safeLoad(file);\n jsonCopy = __assign({}, json);\n vars = new Variables(filePath, args, out, envVars);\n return [4 /*yield*/, vars.populateJson(json)];\n case 1:\n populatedJson = _a.sent();\n if (populatedJson.custom) {\n delete populatedJson.custom;\n }\n valid = graceful ? validateGraceful(populatedJson) : validate(populatedJson);\n // TODO activate as soon as the backend sends valid yaml\n if (!valid) {\n errorMessage = \"Invalid prisma.yml file\" + '\\n' + printErrors(graceful ? validateGraceful.errors : validate.errors);\n throw new Error(errorMessage);\n }\n cache[file] = populatedJson;\n return [2 /*return*/, {\n definition: populatedJson,\n rawJson: jsonCopy,\n }];\n }\n });\n });\n}\nfunction printErrors(errors, name) {\n if (name === void 0) { name = 'prisma.yml'; }\n return errors\n .map(function (e) {\n var paramsKey = stringify(e.params);\n if (betterMessagesByParams[paramsKey]) {\n return betterMessagesByParams[paramsKey];\n }\n var params = Object.keys(e.params)\n .map(function (key) { return key + \": \" + e.params[key]; })\n .join(', ');\n debug(stringify(e.params));\n return \"\" + name + e.dataPath + \" \" + e.message + \". \" + params;\n })\n .join('\\n');\n}\nvar betterMessagesByParams = {\n // this is not up-to-date, stages are in again!\n // https://github.com/prisma/framework/issues/1461\n '{\"additionalProperty\":\"stages\"}': 'prisma.yml should NOT have a \"stages\" property anymore. Stages are now just provided as CLI args.\\nRead more here: https://goo.gl/SUD5i5',\n '{\"additionalProperty\":\"types\"}': 'prisma.yml should NOT have a \"types\" property anymore. It has been renamed to \"datamodel\"',\n};\n//# sourceMappingURL=yaml.js.map","import { __values } from \"tslib\";\nimport * as yamlParser from 'yaml-ast-parser';\n/**\n * Comments out the current entry of a specific key in a yaml document and creates a new value next to it\n * @param key key in yaml document to comment out\n * @param newValue new value to add in the document\n */\nexport function replaceYamlValue(input, key, newValue) {\n var ast = yamlParser.safeLoad(input);\n var position = getPosition(ast, key);\n var newEntry = key + \": \" + newValue + \"\\n\";\n if (!position) {\n return input + '\\n' + newEntry;\n }\n return (input.slice(0, position.start) +\n '#' +\n input.slice(position.start, position.end) +\n newEntry +\n input.slice(position.end));\n}\nfunction getPosition(ast, key) {\n var mapping = ast.mappings.find(function (m) { return m.key.value === key; });\n if (!mapping) {\n return undefined;\n }\n return {\n start: mapping.startPosition,\n end: mapping.endPosition + 1,\n };\n}\nfunction commentOut(input, keys) {\n var e_1, _a;\n var output = input;\n try {\n for (var keys_1 = __values(keys), keys_1_1 = keys_1.next(); !keys_1_1.done; keys_1_1 = keys_1.next()) {\n var key = keys_1_1.value;\n var ast = yamlParser.safeLoad(output);\n var position = getPosition(ast, key);\n if (position) {\n output = output.slice(0, position.start) + '#' + output.slice(position.start);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (keys_1_1 && !keys_1_1.done && (_a = keys_1.return)) _a.call(keys_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return output;\n}\nexport function migrateToEndpoint(input, endpoint) {\n var output = commentOut(input, ['service', 'stage', 'cluster']);\n return replaceYamlValue(output, 'endpoint', endpoint);\n}\n//# sourceMappingURL=yamlComment.js.map","import { __awaiter, __generator, __read } from \"tslib\";\nimport { readDefinition } from './yaml';\nimport * as fs from 'fs';\nimport * as dotenv from 'dotenv';\nimport * as path from 'path';\n// eslint-disable-next-line\n// @ts-ignore\nimport * as jwt from 'jsonwebtoken';\nimport { Cluster } from './Cluster';\nimport chalk from 'chalk';\nimport { replaceYamlValue } from './utils/yamlComment';\nimport { parseEndpoint } from './utils/parseEndpoint';\nvar PrismaDefinitionClass = /** @class */ (function () {\n function PrismaDefinitionClass(env, definitionPath, envVars, out) {\n if (envVars === void 0) { envVars = process.env; }\n this.secrets = null;\n this.definitionPath = definitionPath;\n if (definitionPath) {\n this.definitionDir = path.dirname(definitionPath);\n }\n this.env = env;\n this.out = out;\n this.envVars = envVars;\n }\n PrismaDefinitionClass.prototype.load = function (args, envPath, graceful) {\n return __awaiter(this, void 0, void 0, function () {\n var flagPath;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!args.project) return [3 /*break*/, 2];\n flagPath = path.resolve(args.project);\n try {\n fs.accessSync(flagPath);\n }\n catch (_b) {\n throw new Error(\"Prisma definition path specified by --project '\" + flagPath + \"' does not exist\");\n }\n this.definitionPath = flagPath;\n this.definitionDir = path.dirname(flagPath);\n return [4 /*yield*/, this.loadDefinition(args, graceful)];\n case 1:\n _a.sent();\n this.validate();\n return [2 /*return*/];\n case 2:\n if (envPath) {\n try {\n fs.accessSync(envPath);\n }\n catch (_c) {\n envPath = path.join(process.cwd(), envPath);\n }\n try {\n fs.accessSync(envPath);\n }\n catch (_d) {\n throw new Error(\"--env-file path '\" + envPath + \"' does not exist\");\n }\n }\n dotenv.config({ path: envPath });\n if (!this.definitionPath) return [3 /*break*/, 4];\n return [4 /*yield*/, this.loadDefinition(args, graceful)];\n case 3:\n _a.sent();\n this.validate();\n return [3 /*break*/, 5];\n case 4: throw new Error(\"Couldn\\u2019t find `prisma.yml` file. Are you in the right directory?\");\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n PrismaDefinitionClass.prototype.loadDefinition = function (args, graceful) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, definition, rawJson, secrets;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, readDefinition(this.definitionPath, args, this.out, this.envVars, graceful)];\n case 1:\n _a = _b.sent(), definition = _a.definition, rawJson = _a.rawJson;\n this.rawEndpoint = rawJson.endpoint;\n this.definition = definition;\n this.rawJson = rawJson;\n this.definitionString = fs.readFileSync(this.definitionPath, 'utf-8');\n this.typesString = this.getTypesString(this.definition);\n secrets = this.definition.secret;\n this.secrets = secrets ? secrets.replace(/\\s/g, '').split(',') : null;\n return [2 /*return*/];\n }\n });\n });\n };\n Object.defineProperty(PrismaDefinitionClass.prototype, \"endpoint\", {\n get: function () {\n return (this.definition && this.definition.endpoint) || process.env.PRISMA_MANAGEMENT_API_ENDPOINT;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PrismaDefinitionClass.prototype, \"clusterBaseUrl\", {\n get: function () {\n if (!this.definition || !this.endpoint) {\n return undefined;\n }\n var clusterBaseUrl = parseEndpoint(this.endpoint).clusterBaseUrl;\n return clusterBaseUrl;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PrismaDefinitionClass.prototype, \"service\", {\n get: function () {\n if (!this.definition) {\n return undefined;\n }\n if (!this.endpoint) {\n return undefined;\n }\n var service = parseEndpoint(this.endpoint).service;\n return service;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PrismaDefinitionClass.prototype, \"stage\", {\n get: function () {\n if (!this.definition) {\n return undefined;\n }\n if (!this.endpoint) {\n return undefined;\n }\n var stage = parseEndpoint(this.endpoint).stage;\n return stage;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PrismaDefinitionClass.prototype, \"cluster\", {\n get: function () {\n if (!this.definition) {\n return undefined;\n }\n if (!this.endpoint) {\n return undefined;\n }\n var clusterName = parseEndpoint(this.endpoint).clusterName;\n return clusterName;\n },\n enumerable: false,\n configurable: true\n });\n PrismaDefinitionClass.prototype.validate = function () {\n // shared clusters need a workspace\n var clusterName = this.getClusterName();\n var cluster = this.env.clusterByName(clusterName);\n if (this.definition &&\n clusterName &&\n cluster &&\n cluster.shared &&\n !cluster.isPrivate &&\n !this.getWorkspace() &&\n clusterName !== 'shared-public-demo') {\n throw new Error(\"Your `cluster` property in the prisma.yml is missing the workspace slug.\\nMake sure that your `cluster` property looks like this: \" + chalk.bold('<workspace>/<cluster-name>') + \". You can also remove the cluster property from the prisma.yml\\nand execute \" + chalk.bold.green('prisma deploy') + \" again, to get that value auto-filled.\");\n }\n if (this.definition &&\n this.definition.endpoint &&\n clusterName &&\n cluster &&\n cluster.shared &&\n !cluster.isPrivate &&\n !this.getWorkspace() &&\n clusterName !== 'shared-public-demo') {\n throw new Error(\"The provided endpoint \" + this.definition.endpoint + \" points to a demo cluster, but is missing the workspace slug. A valid demo endpoint looks like this: https://eu1.prisma.sh/myworkspace/service-name/stage-name\");\n }\n if (this.definition && this.definition.endpoint && !this.definition.endpoint.startsWith('http')) {\n throw new Error(chalk.bold(this.definition.endpoint) + \" is not a valid endpoint. It must start with http:// or https://\");\n }\n };\n PrismaDefinitionClass.prototype.getToken = function (serviceName, stageName) {\n if (this.secrets) {\n var data = {\n data: {\n service: serviceName + \"@\" + stageName,\n roles: ['admin'],\n },\n };\n return jwt.sign(data, this.secrets[0], {\n expiresIn: '7d',\n });\n }\n return undefined;\n };\n PrismaDefinitionClass.prototype.getCluster = function (_) {\n if (_ === void 0) { _ = false; }\n return __awaiter(this, void 0, void 0, function () {\n var clusterData, cluster;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(this.definition && this.endpoint)) return [3 /*break*/, 2];\n clusterData = parseEndpoint(this.endpoint);\n return [4 /*yield*/, this.getClusterByEndpoint(clusterData)];\n case 1:\n cluster = _a.sent();\n this.env.removeCluster(clusterData.clusterName);\n this.env.addCluster(cluster);\n return [2 /*return*/, cluster];\n case 2: return [2 /*return*/, undefined];\n }\n });\n });\n };\n PrismaDefinitionClass.prototype.findClusterByBaseUrl = function (baseUrl) {\n return this.env.clusters.find(function (c) { return c.baseUrl.toLowerCase() === baseUrl; });\n };\n PrismaDefinitionClass.prototype.getClusterByEndpoint = function (data) {\n return __awaiter(this, void 0, void 0, function () {\n var cluster, clusterName, clusterBaseUrl, isPrivate, local, shared, workspaceSlug, cluster;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (data.clusterBaseUrl && !process.env.PRISMA_MANAGEMENT_API_SECRET) {\n cluster = this.findClusterByBaseUrl(data.clusterBaseUrl);\n if (cluster) {\n return [2 /*return*/, cluster];\n }\n }\n clusterName = data.clusterName, clusterBaseUrl = data.clusterBaseUrl, isPrivate = data.isPrivate, local = data.local, shared = data.shared, workspaceSlug = data.workspaceSlug;\n if (!!local) return [3 /*break*/, 2];\n return [4 /*yield*/, this.env.fetchClusters()];\n case 1:\n _a.sent();\n cluster = this.findClusterByBaseUrl(data.clusterBaseUrl);\n if (cluster) {\n return [2 /*return*/, cluster];\n }\n _a.label = 2;\n case 2: return [2 /*return*/, new Cluster(this.out, clusterName, clusterBaseUrl, shared || isPrivate ? this.env.cloudSessionKey : undefined, local, shared, isPrivate, workspaceSlug)];\n }\n });\n });\n };\n PrismaDefinitionClass.prototype.getTypesString = function (definition) {\n var _this = this;\n var typesPaths = definition.datamodel\n ? Array.isArray(definition.datamodel)\n ? definition.datamodel\n : [definition.datamodel]\n : [];\n var allTypes = '';\n typesPaths.forEach(function (unresolvedTypesPath) {\n var typesPath = path.join(_this.definitionDir, unresolvedTypesPath);\n try {\n fs.accessSync(typesPath);\n var types = fs.readFileSync(typesPath, 'utf-8');\n allTypes += types + '\\n';\n }\n catch (_a) {\n throw new Error(\"The types definition file \\\"\" + typesPath + \"\\\" could not be found.\");\n }\n });\n return allTypes;\n };\n PrismaDefinitionClass.prototype.getClusterName = function () {\n return this.cluster || null;\n };\n PrismaDefinitionClass.prototype.getWorkspace = function () {\n if (this.definition && this.endpoint) {\n var workspaceSlug = parseEndpoint(this.endpoint).workspaceSlug;\n if (workspaceSlug) {\n return workspaceSlug;\n }\n }\n return null;\n };\n PrismaDefinitionClass.prototype.getDeployName = function () {\n return __awaiter(this, void 0, void 0, function () {\n var cluster;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.getCluster()];\n case 1:\n cluster = _a.sent();\n return [2 /*return*/, concatName(cluster, this.service, this.getWorkspace())];\n }\n });\n });\n };\n PrismaDefinitionClass.prototype.getSubscriptions = function () {\n var _this = this;\n if (this.definition && this.definition.subscriptions) {\n return Object.entries(this.definition.subscriptions).map(function (_a) {\n var _b = __read(_a, 2), name = _b[0], subscription = _b[1];\n var url = typeof subscription.webhook === 'string' ? subscription.webhook : subscription.webhook.url;\n var headers = typeof subscription.webhook === 'string' ? [] : transformHeaders(subscription.webhook.headers);\n var query = subscription.query;\n if (subscription.query.endsWith('.graphql')) {\n var queryPath = path.join(_this.definitionDir, subscription.query);\n try {\n fs.accessSync(queryPath);\n }\n catch (_c) {\n throw new Error(\"Subscription query \" + queryPath + \" provided in subscription \\\"\" + name + \"\\\" in prisma.yml does not exist.\");\n }\n query = fs.readFileSync(queryPath, 'utf-8');\n }\n return {\n name: name,\n query: query,\n headers: headers,\n url: url,\n };\n });\n }\n return [];\n };\n PrismaDefinitionClass.prototype.replaceEndpoint = function (newEndpoint) {\n this.definitionString = replaceYamlValue(this.definitionString, 'endpoint', newEndpoint);\n fs.writeFileSync(this.definitionPath, this.definitionString);\n };\n PrismaDefinitionClass.prototype.addDatamodel = function (datamodel) {\n this.definitionString += \"\\ndatamodel: \" + datamodel;\n fs.writeFileSync(this.definitionPath, this.definitionString);\n this.definition.datamodel = datamodel;\n };\n PrismaDefinitionClass.prototype.getEndpoint = function (serviceInput, stageInput) {\n return __awaiter(this, void 0, void 0, function () {\n var cluster, service, stage, workspace;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.getCluster()];\n case 1:\n cluster = _a.sent();\n service = serviceInput || this.service;\n stage = stageInput || this.stage;\n workspace = this.getWorkspace();\n if (service && stage && cluster) {\n return [2 /*return*/, cluster.getApiEndpoint(service, stage, workspace)];\n }\n return [2 /*return*/, null];\n }\n });\n });\n };\n PrismaDefinitionClass.prototype.getHooks = function (hookType) {\n if (this.definition && this.definition.hooks && this.definition.hooks[hookType]) {\n var hooks = this.definition.hooks[hookType];\n if (typeof hooks !== 'string' && !Array.isArray(hooks)) {\n throw new Error(\"Hook \" + hookType + \" provided in prisma.yml must be string or an array of strings.\");\n }\n return typeof hooks === 'string' ? [hooks] : hooks;\n }\n return [];\n };\n return PrismaDefinitionClass;\n}());\nexport { PrismaDefinitionClass };\nexport function concatName(cluster, name, workspace) {\n if (cluster.shared) {\n var workspaceString = workspace ? workspace + \"~\" : '';\n return \"\" + workspaceString + name;\n }\n return name;\n}\nfunction transformHeaders(headers) {\n if (!headers) {\n return [];\n }\n return Object.entries(headers).map(function (_a) {\n var _b = __read(_a, 2), name = _b[0], value = _b[1];\n return ({ name: name, value: value });\n });\n}\n//# sourceMappingURL=PrismaDefinition.js.map","import { __extends } from \"tslib\";\nvar ClusterNotFound = /** @class */ (function (_super) {\n __extends(ClusterNotFound, _super);\n function ClusterNotFound(name) {\n return _super.call(this, \"Cluster '\" + name + \"' is neither a known shared cluster nor defined in your global .prismarc.\") || this;\n }\n return ClusterNotFound;\n}(Error));\nexport { ClusterNotFound };\n//# sourceMappingURL=ClusterNotFound.js.map","import { __extends } from \"tslib\";\nvar ClusterNotSet = /** @class */ (function (_super) {\n __extends(ClusterNotSet, _super);\n function ClusterNotSet() {\n return _super.call(this, \"No cluster set. In order to run this command, please set the \\\"cluster\\\" property in your prisma.yml\") || this;\n }\n return ClusterNotSet;\n}(Error));\nexport { ClusterNotSet };\n//# sourceMappingURL=ClusterNotSet.js.map","import { __assign, __awaiter, __generator, __read, __spread } from \"tslib\";\nimport { Cluster } from './Cluster';\nimport * as fs from 'fs';\nimport * as yaml from 'js-yaml';\nimport { ClusterNotFound } from './errors/ClusterNotFound';\nimport { Variables } from './Variables';\nimport { Output } from './Output';\nimport * as path from 'path';\nimport 'isomorphic-fetch';\nimport { ClusterNotSet } from './errors/ClusterNotSet';\nimport { clusterEndpointMap } from './constants';\nimport { getProxyAgent } from './utils/getProxyAgent';\n// eslint-disable-next-line\n// @ts-ignore\nimport * as jwt from 'jsonwebtoken';\nvar debug = require('debug')('Environment');\nvar Environment = /** @class */ (function () {\n function Environment(home, out, version) {\n if (out === void 0) { out = new Output(); }\n this.sharedClusters = ['prisma-eu1', 'prisma-us1'];\n this.clusterEndpointMap = clusterEndpointMap;\n this.globalRC = {};\n this.clustersFetched = false;\n this.out = out;\n this.home = home;\n this.version = version;\n this.rcPath = path.join(this.home, '.prisma/config.yml');\n fs.mkdirSync(path.dirname(this.rcPath), { recursive: true });\n }\n Environment.prototype.load = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.loadGlobalRC()];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n Object.defineProperty(Environment.prototype, \"cloudSessionKey\", {\n get: function () {\n return process.env.PRISMA_CLOUD_SESSION_KEY || this.globalRC.cloudSessionKey;\n },\n enumerable: false,\n configurable: true\n });\n Environment.prototype.renewToken = function () {\n return __awaiter(this, void 0, void 0, function () {\n var data, timeLeft, res, e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.cloudSessionKey) return [3 /*break*/, 4];\n data = jwt.decode(this.cloudSessionKey);\n if (!data.exp) {\n return [2 /*return*/];\n }\n timeLeft = data.exp * 1000 - Date.now();\n if (!(timeLeft < 1000 * 60 * 60 * 24 && timeLeft > 0)) return [3 /*break*/, 4];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.requestCloudApi(\"\\n mutation {\\n renewToken\\n }\\n \")];\n case 2:\n res = _a.sent();\n if (res.renewToken) {\n this.globalRC.cloudSessionKey = res.renewToken;\n this.saveGlobalRC();\n }\n return [3 /*break*/, 4];\n case 3:\n e_1 = _a.sent();\n debug(e_1);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n Environment.prototype.fetchClusters = function () {\n return __awaiter(this, void 0, void 0, function () {\n var renewPromise, res, e_2;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(!this.clustersFetched && this.cloudSessionKey)) return [3 /*break*/, 6];\n renewPromise = this.renewToken();\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, Promise.race([\n this.requestCloudApi(\"\\n query prismaCliGetClusters {\\n me {\\n memberships {\\n workspace {\\n id\\n slug\\n clusters {\\n id\\n name\\n connectInfo {\\n endpoint\\n }\\n customConnectionInfo {\\n endpoint\\n }\\n }\\n }\\n }\\n }\\n }\\n \"),\n // eslint-disable-next-line\n new Promise(function (_, r) { return setTimeout(function () { return r(); }, 6000); }),\n ])];\n case 2:\n res = (_a.sent());\n if (!res) {\n return [2 /*return*/];\n }\n if (res.me && res.me.memberships && Array.isArray(res.me.memberships)) {\n // clean up all prisma-eu1 and prisma-us1 clusters if they already exist\n this.clusters = this.clusters.filter(function (c) { return c.name !== 'prisma-eu1' && c.name !== 'prisma-us1'; });\n res.me.memberships.forEach(function (m) {\n m.workspace.clusters.forEach(function (cluster) {\n var endpoint = cluster.connectInfo\n ? cluster.connectInfo.endpoint\n : cluster.customConnectionInfo\n ? cluster.customConnectionInfo.endpoint\n : _this.clusterEndpointMap[cluster.name];\n _this.addCluster(new Cluster(_this.out, cluster.name, endpoint, _this.globalRC.cloudSessionKey, false, ['prisma-eu1', 'prisma-us1'].includes(cluster.name), !['prisma-eu1', 'prisma-us1'].includes(cluster.name), m.workspace.slug));\n });\n });\n }\n return [3 /*break*/, 4];\n case 3:\n e_2 = _a.sent();\n debug(e_2);\n return [3 /*break*/, 4];\n case 4: return [4 /*yield*/, renewPromise];\n case 5:\n _a.sent();\n _a.label = 6;\n case 6: return [2 /*return*/];\n }\n });\n });\n };\n Environment.prototype.clusterByName = function (name, throws) {\n if (throws === void 0) { throws = false; }\n if (!this.clusters) {\n return;\n }\n var cluster = this.clusters.find(function (c) { return c.name === name; });\n if (!throws) {\n return cluster;\n }\n if (!cluster) {\n if (!name) {\n throw new ClusterNotSet();\n }\n throw new ClusterNotFound(name);\n }\n return cluster;\n };\n Environment.prototype.setToken = function (token) {\n this.globalRC.cloudSessionKey = token;\n };\n Environment.prototype.addCluster = function (cluster) {\n var existingClusterIndex = this.clusters.findIndex(function (c) {\n if (cluster.workspaceSlug) {\n return c.workspaceSlug === cluster.workspaceSlug && c.name === cluster.name;\n }\n else {\n return c.name === cluster.name;\n }\n });\n if (existingClusterIndex > -1) {\n this.clusters.splice(existingClusterIndex, 1);\n }\n this.clusters.push(cluster);\n };\n Environment.prototype.removeCluster = function (name) {\n this.clusters = this.clusters.filter(function (c) { return c.name !== name; });\n };\n Environment.prototype.saveGlobalRC = function () {\n var rc = {\n cloudSessionKey: this.globalRC.cloudSessionKey ? this.globalRC.cloudSessionKey.trim() : undefined,\n clusters: this.getLocalClusterConfig(),\n };\n // parse & stringify to rm undefined for yaml parser\n var rcString = yaml.safeDump(JSON.parse(JSON.stringify(rc)));\n fs.writeFileSync(this.rcPath, rcString);\n };\n Environment.prototype.setActiveCluster = function (cluster) {\n this.activeCluster = cluster;\n };\n Environment.prototype.loadGlobalRC = function () {\n return __awaiter(this, void 0, void 0, function () {\n var globalFile, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!this.rcPath) return [3 /*break*/, 6];\n _b.label = 1;\n case 1:\n _b.trys.push([1, 3, , 5]);\n fs.accessSync(this.rcPath);\n globalFile = fs.readFileSync(this.rcPath, 'utf-8');\n return [4 /*yield*/, this.parseGlobalRC(globalFile)];\n case 2:\n _b.sent();\n return [3 /*break*/, 5];\n case 3:\n _a = _b.sent();\n return [4 /*yield*/, this.parseGlobalRC()];\n case 4:\n _b.sent();\n return [3 /*break*/, 5];\n case 5: return [3 /*break*/, 8];\n case 6: return [4 /*yield*/, this.parseGlobalRC()];\n case 7:\n _b.sent();\n _b.label = 8;\n case 8: return [2 /*return*/];\n }\n });\n });\n };\n Environment.prototype.parseGlobalRC = function (globalFile) {\n return __awaiter(this, void 0, void 0, function () {\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!globalFile) return [3 /*break*/, 2];\n _a = this;\n return [4 /*yield*/, this.loadYaml(globalFile, this.rcPath)];\n case 1:\n _a.globalRC = _b.sent();\n _b.label = 2;\n case 2:\n this.clusters = this.initClusters(this.globalRC);\n return [2 /*return*/];\n }\n });\n });\n };\n Environment.prototype.loadYaml = function (file, filePath) {\n if (filePath === void 0) { filePath = null; }\n return __awaiter(this, void 0, void 0, function () {\n var content, variables;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!file) return [3 /*break*/, 2];\n content = void 0;\n try {\n content = yaml.safeLoad(file);\n }\n catch (e) {\n throw new Error(\"Yaml parsing error in \" + filePath + \": \" + e.message);\n }\n variables = new Variables(filePath || 'no filepath provided', this.args, this.out);\n return [4 /*yield*/, variables.populateJson(content)];\n case 1:\n content = _a.sent();\n return [2 /*return*/, content];\n case 2: return [2 /*return*/, {}];\n }\n });\n });\n };\n Environment.prototype.initClusters = function (rc) {\n var sharedClusters = this.getSharedClusters(rc);\n return __spread(sharedClusters);\n };\n Environment.prototype.getSharedClusters = function (rc) {\n var _this = this;\n return this.sharedClusters.map(function (clusterName) {\n return new Cluster(_this.out, clusterName, _this.clusterEndpointMap[clusterName], rc && rc.cloudSessionKey, false, true);\n });\n };\n Environment.prototype.getLocalClusterConfig = function () {\n var _this = this;\n return this.clusters\n .filter(function (c) { return !c.shared && c.clusterSecret !== _this.cloudSessionKey && !c.isPrivate; })\n .reduce(function (acc, cluster) {\n var _a;\n return __assign(__assign({}, acc), (_a = {}, _a[cluster.name] = {\n host: cluster.baseUrl,\n clusterSecret: cluster.clusterSecret,\n }, _a));\n }, {});\n };\n Environment.prototype.requestCloudApi = function (query) {\n return __awaiter(this, void 0, void 0, function () {\n var res, json;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, fetch('https://api.cloud.prisma.sh', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: \"Bearer \" + this.cloudSessionKey,\n 'X-Cli-Version': this.version,\n },\n body: JSON.stringify({\n query: query,\n }),\n proxy: getProxyAgent('https://api.cloud.prisma.sh'),\n })];\n case 1:\n res = _a.sent();\n return [4 /*yield*/, res.json()];\n case 2:\n json = _a.sent();\n return [2 /*return*/, json.data];\n }\n });\n });\n };\n return Environment;\n}());\nexport { Environment };\nexport var isLocal = function (hostname) { return hostname.includes('localhost') || hostname.includes('127.0.0.1'); };\n//# sourceMappingURL=Environment.js.map","import { __extends } from \"tslib\";\nvar StageNotFound = /** @class */ (function (_super) {\n __extends(StageNotFound, _super);\n function StageNotFound(name) {\n var _this = this;\n if (name) {\n _this = _super.call(this, \"Stage '\" + name + \"' could not be found in the local prisma.yml\") || this;\n }\n else {\n _this = _super.call(this, \"No stage provided and no default stage set\") || this;\n }\n return _this;\n }\n return StageNotFound;\n}(Error));\nexport { StageNotFound };\n//# sourceMappingURL=StageNotFound.js.map","import { __awaiter, __extends, __generator } from \"tslib\";\nimport { UrlLoader } from '@graphql-tools/url-loader';\nimport { PrismaDefinitionClass, Environment } from './prisma-yml';\nimport { join } from 'path';\nimport { promises as fsPromises } from 'fs';\nimport { homedir } from 'os';\nimport { cwd } from 'process';\nvar access = fsPromises.access;\n/**\n * This loader loads a schema from a `prisma.yml` file\n */\nvar PrismaLoader = /** @class */ (function (_super) {\n __extends(PrismaLoader, _super);\n function PrismaLoader() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PrismaLoader.prototype.loaderId = function () {\n return 'prisma';\n };\n PrismaLoader.prototype.canLoad = function (prismaConfigFilePath, options) {\n return __awaiter(this, void 0, void 0, function () {\n var joinedYmlPath, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(typeof prismaConfigFilePath === 'string' && prismaConfigFilePath.endsWith('prisma.yml'))) return [3 /*break*/, 4];\n joinedYmlPath = join(options.cwd || cwd(), prismaConfigFilePath);\n _b.label = 1;\n case 1:\n _b.trys.push([1, 3, , 4]);\n return [4 /*yield*/, access(joinedYmlPath)];\n case 2:\n _b.sent();\n return [2 /*return*/, true];\n case 3:\n _a = _b.sent();\n return [2 /*return*/, false];\n case 4: return [2 /*return*/, false];\n }\n });\n });\n };\n PrismaLoader.prototype.load = function (prismaConfigFilePath, options) {\n return __awaiter(this, void 0, void 0, function () {\n var graceful, envVars, home, env, joinedYmlPath, definition, serviceName, stage, clusterName, cluster, token, url, headers;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n graceful = options.graceful, envVars = options.envVars;\n home = homedir();\n env = new Environment(home);\n return [4 /*yield*/, env.load()];\n case 1:\n _a.sent();\n joinedYmlPath = join(options.cwd || cwd(), prismaConfigFilePath);\n definition = new PrismaDefinitionClass(env, joinedYmlPath, envVars);\n return [4 /*yield*/, definition.load({}, undefined, graceful)];\n case 2:\n _a.sent();\n serviceName = definition.service;\n stage = definition.stage;\n clusterName = definition.cluster;\n if (!clusterName) {\n throw new Error(\"No cluster set. Please set the \\\"cluster\\\" property in your prisma.yml\");\n }\n return [4 /*yield*/, definition.getCluster()];\n case 3:\n cluster = _a.sent();\n if (!cluster) {\n throw new Error(\"Cluster \" + clusterName + \" provided in prisma.yml could not be found in global ~/.prisma/config.yml.\\n Please check in ~/.prisma/config.yml, if the cluster exists.\\n You can use `docker-compose up -d` to start a new cluster.\");\n }\n token = definition.getToken(serviceName, stage);\n url = cluster.getApiEndpoint(serviceName, stage, definition.getWorkspace() || undefined);\n headers = token\n ? {\n Authorization: \"Bearer \" + token,\n }\n : undefined;\n return [2 /*return*/, _super.prototype.load.call(this, url, { headers: headers })];\n }\n });\n });\n };\n return PrismaLoader;\n}(UrlLoader));\nexport { PrismaLoader };\n//# sourceMappingURL=index.js.map"],"names":["URL","jwt.sign","BbPromise.resolve","lodash.isArray","lodash.map","lodash.isObject","lodash.isDate","lodash.isFunction","lodash.extend","lodash.mapValues","lodash.set","BbPromise.all","lodash.cloneDeep","lodash.isEmpty","BbPromise.reduce","debug","fs.accessSync","fs.readFileSync","yaml.safeLoad","yamlParser.safeLoad","path.dirname","path.resolve","path.join","dotenv.config","fs.writeFileSync","fs.mkdirSync","jwt.decode","yaml.safeDump","fsPromises"],"mappings":"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"}