@osdk/create-app 0.19.0-beta.5 → 0.19.0-beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/build/browser/cli.d.ts +2 -0
- package/build/browser/cli.d.ts.map +1 -0
- package/build/browser/cli.js +95 -0
- package/build/browser/cli.js.map +1 -0
- package/build/browser/cli.test.d.ts +2 -0
- package/build/browser/cli.test.d.ts.map +1 -0
- package/build/browser/cli.test.js +59 -0
- package/build/browser/cli.test.js.map +1 -0
- package/build/browser/consola.d.ts +3 -0
- package/build/browser/consola.d.ts.map +1 -0
- package/build/browser/consola.js +28 -0
- package/build/browser/consola.js.map +1 -0
- package/build/browser/generate/generateEnv.d.ts +13 -0
- package/build/browser/generate/generateEnv.d.ts.map +1 -0
- package/build/browser/generate/generateEnv.js +50 -0
- package/build/browser/generate/generateEnv.js.map +1 -0
- package/build/browser/generate/generateEnv.test.d.ts +2 -0
- package/build/browser/generate/generateEnv.test.d.ts.map +1 -0
- package/build/browser/generate/generateEnv.test.js +70 -0
- package/build/browser/generate/generateEnv.test.js.map +1 -0
- package/build/browser/generate/generateFoundryConfigJson.d.ts +6 -0
- package/build/browser/generate/generateFoundryConfigJson.d.ts.map +1 -0
- package/build/browser/generate/generateFoundryConfigJson.js +33 -0
- package/build/browser/generate/generateFoundryConfigJson.js.map +1 -0
- package/build/browser/generate/generateFoundryConfigJson.test.d.ts +2 -0
- package/build/browser/generate/generateFoundryConfigJson.test.d.ts.map +1 -0
- package/build/browser/generate/generateFoundryConfigJson.test.js +38 -0
- package/build/browser/generate/generateFoundryConfigJson.test.js.map +1 -0
- package/build/browser/generate/generateNpmRc.d.ts +5 -0
- package/build/browser/generate/generateNpmRc.d.ts.map +1 -0
- package/build/browser/generate/generateNpmRc.js +27 -0
- package/build/browser/generate/generateNpmRc.js.map +1 -0
- package/build/browser/generate/generateNpmRc.test.d.ts +2 -0
- package/build/browser/generate/generateNpmRc.test.d.ts.map +1 -0
- package/build/browser/generate/generateNpmRc.test.js +28 -0
- package/build/browser/generate/generateNpmRc.test.js.map +1 -0
- package/build/browser/highlight.d.ts +3 -0
- package/build/browser/highlight.d.ts.map +1 -0
- package/build/browser/highlight.js +23 -0
- package/build/browser/highlight.js.map +1 -0
- package/build/browser/index.d.ts +5 -0
- package/build/browser/index.d.ts.map +1 -0
- package/build/browser/index.js +18 -540
- package/build/browser/index.js.map +1 -1
- package/build/browser/prompts/promptApplicationRid.d.ts +4 -0
- package/build/browser/prompts/promptApplicationRid.d.ts.map +1 -0
- package/build/browser/prompts/promptApplicationRid.js +31 -0
- package/build/browser/prompts/promptApplicationRid.js.map +1 -0
- package/build/browser/prompts/promptApplicationRid.test.d.ts +2 -0
- package/build/browser/prompts/promptApplicationRid.test.d.ts.map +1 -0
- package/build/browser/prompts/promptApplicationRid.test.js +48 -0
- package/build/browser/prompts/promptApplicationRid.test.js.map +1 -0
- package/build/browser/prompts/promptApplicationUrl.d.ts +5 -0
- package/build/browser/prompts/promptApplicationUrl.d.ts.map +1 -0
- package/build/browser/prompts/promptApplicationUrl.js +50 -0
- package/build/browser/prompts/promptApplicationUrl.js.map +1 -0
- package/build/browser/prompts/promptApplicationUrl.test.d.ts +2 -0
- package/build/browser/prompts/promptApplicationUrl.test.d.ts.map +1 -0
- package/build/browser/prompts/promptApplicationUrl.test.js +68 -0
- package/build/browser/prompts/promptApplicationUrl.test.js.map +1 -0
- package/build/browser/prompts/promptClientId.d.ts +4 -0
- package/build/browser/prompts/promptClientId.d.ts.map +1 -0
- package/build/browser/prompts/promptClientId.js +31 -0
- package/build/browser/prompts/promptClientId.js.map +1 -0
- package/build/browser/prompts/promptClientId.test.d.ts +2 -0
- package/build/browser/prompts/promptClientId.test.d.ts.map +1 -0
- package/build/browser/prompts/promptClientId.test.js +47 -0
- package/build/browser/prompts/promptClientId.test.js.map +1 -0
- package/build/browser/prompts/promptCorsProxy.d.ts +4 -0
- package/build/browser/prompts/promptCorsProxy.d.ts.map +1 -0
- package/build/browser/prompts/promptCorsProxy.js +29 -0
- package/build/browser/prompts/promptCorsProxy.js.map +1 -0
- package/build/browser/prompts/promptCorsProxy.test.d.ts +2 -0
- package/build/browser/prompts/promptCorsProxy.test.d.ts.map +1 -0
- package/build/browser/prompts/promptCorsProxy.test.js +44 -0
- package/build/browser/prompts/promptCorsProxy.test.js.map +1 -0
- package/build/browser/prompts/promptFoundryUrl.d.ts +4 -0
- package/build/browser/prompts/promptFoundryUrl.d.ts.map +1 -0
- package/build/browser/prompts/promptFoundryUrl.js +31 -0
- package/build/browser/prompts/promptFoundryUrl.js.map +1 -0
- package/build/browser/prompts/promptFoundryUrl.test.d.ts +2 -0
- package/build/browser/prompts/promptFoundryUrl.test.d.ts.map +1 -0
- package/build/browser/prompts/promptFoundryUrl.test.js +55 -0
- package/build/browser/prompts/promptFoundryUrl.test.js.map +1 -0
- package/build/browser/prompts/promptOsdkPackage.d.ts +4 -0
- package/build/browser/prompts/promptOsdkPackage.d.ts.map +1 -0
- package/build/browser/prompts/promptOsdkPackage.js +31 -0
- package/build/browser/prompts/promptOsdkPackage.js.map +1 -0
- package/build/browser/prompts/promptOsdkPackage.test.d.ts +2 -0
- package/build/browser/prompts/promptOsdkPackage.test.d.ts.map +1 -0
- package/build/browser/prompts/promptOsdkPackage.test.js +48 -0
- package/build/browser/prompts/promptOsdkPackage.test.js.map +1 -0
- package/build/browser/prompts/promptOsdkRegistryUrl.d.ts +4 -0
- package/build/browser/prompts/promptOsdkRegistryUrl.d.ts.map +1 -0
- package/build/browser/prompts/promptOsdkRegistryUrl.js +31 -0
- package/build/browser/prompts/promptOsdkRegistryUrl.js.map +1 -0
- package/build/browser/prompts/promptOsdkRegistryUrl.test.d.ts +2 -0
- package/build/browser/prompts/promptOsdkRegistryUrl.test.d.ts.map +1 -0
- package/build/browser/prompts/promptOsdkRegistryUrl.test.js +54 -0
- package/build/browser/prompts/promptOsdkRegistryUrl.test.js.map +1 -0
- package/build/browser/prompts/promptOverwrite.d.ts +5 -0
- package/build/browser/prompts/promptOverwrite.d.ts.map +1 -0
- package/build/browser/prompts/promptOverwrite.js +53 -0
- package/build/browser/prompts/promptOverwrite.js.map +1 -0
- package/build/browser/prompts/promptOverwrite.test.d.ts +2 -0
- package/build/browser/prompts/promptOverwrite.test.d.ts.map +1 -0
- package/build/browser/prompts/promptOverwrite.test.js +55 -0
- package/build/browser/prompts/promptOverwrite.test.js.map +1 -0
- package/build/browser/prompts/promptProject.d.ts +4 -0
- package/build/browser/prompts/promptProject.d.ts.map +1 -0
- package/build/browser/prompts/promptProject.js +32 -0
- package/build/browser/prompts/promptProject.js.map +1 -0
- package/build/browser/prompts/promptProject.test.d.ts +2 -0
- package/build/browser/prompts/promptProject.test.d.ts.map +1 -0
- package/build/browser/prompts/promptProject.test.js +47 -0
- package/build/browser/prompts/promptProject.test.js.map +1 -0
- package/build/browser/prompts/promptTemplate.d.ts +6 -0
- package/build/browser/prompts/promptTemplate.d.ts.map +1 -0
- package/build/browser/prompts/promptTemplate.js +45 -0
- package/build/browser/prompts/promptTemplate.js.map +1 -0
- package/build/browser/prompts/promptTemplate.test.d.ts +2 -0
- package/build/browser/prompts/promptTemplate.test.d.ts.map +1 -0
- package/build/browser/prompts/promptTemplate.test.js +48 -0
- package/build/browser/prompts/promptTemplate.test.js.map +1 -0
- package/build/browser/run.d.ts +16 -0
- package/build/browser/run.d.ts.map +1 -0
- package/build/browser/run.js +132 -0
- package/build/browser/run.js.map +1 -0
- package/build/browser/templates.d.ts +23 -0
- package/build/browser/templates.d.ts.map +1 -0
- package/build/browser/templates.js +56 -0
- package/build/browser/templates.js.map +1 -0
- package/build/esm/cli.js +95 -0
- package/build/esm/cli.js.map +1 -0
- package/build/esm/cli.test.js +59 -0
- package/build/esm/cli.test.js.map +1 -0
- package/build/esm/consola.js +28 -0
- package/build/esm/consola.js.map +1 -0
- package/build/esm/generate/generateEnv.js +50 -0
- package/build/esm/generate/generateEnv.js.map +1 -0
- package/build/esm/generate/generateEnv.test.js +70 -0
- package/build/esm/generate/generateEnv.test.js.map +1 -0
- package/build/esm/generate/generateFoundryConfigJson.js +33 -0
- package/build/esm/generate/generateFoundryConfigJson.js.map +1 -0
- package/build/esm/generate/generateFoundryConfigJson.test.js +38 -0
- package/build/esm/generate/generateFoundryConfigJson.test.js.map +1 -0
- package/build/esm/generate/generateNpmRc.js +27 -0
- package/build/esm/generate/generateNpmRc.js.map +1 -0
- package/build/esm/generate/generateNpmRc.test.js +28 -0
- package/build/esm/generate/generateNpmRc.test.js.map +1 -0
- package/build/esm/highlight.js +23 -0
- package/build/esm/highlight.js.map +1 -0
- package/build/esm/index.js +18 -540
- package/build/esm/index.js.map +1 -1
- package/build/esm/prompts/promptApplicationRid.js +31 -0
- package/build/esm/prompts/promptApplicationRid.js.map +1 -0
- package/build/esm/prompts/promptApplicationRid.test.js +48 -0
- package/build/esm/prompts/promptApplicationRid.test.js.map +1 -0
- package/build/esm/prompts/promptApplicationUrl.js +50 -0
- package/build/esm/prompts/promptApplicationUrl.js.map +1 -0
- package/build/esm/prompts/promptApplicationUrl.test.js +68 -0
- package/build/esm/prompts/promptApplicationUrl.test.js.map +1 -0
- package/build/esm/prompts/promptClientId.js +31 -0
- package/build/esm/prompts/promptClientId.js.map +1 -0
- package/build/esm/prompts/promptClientId.test.js +47 -0
- package/build/esm/prompts/promptClientId.test.js.map +1 -0
- package/build/esm/prompts/promptCorsProxy.js +29 -0
- package/build/esm/prompts/promptCorsProxy.js.map +1 -0
- package/build/esm/prompts/promptCorsProxy.test.js +44 -0
- package/build/esm/prompts/promptCorsProxy.test.js.map +1 -0
- package/build/esm/prompts/promptFoundryUrl.js +31 -0
- package/build/esm/prompts/promptFoundryUrl.js.map +1 -0
- package/build/esm/prompts/promptFoundryUrl.test.js +55 -0
- package/build/esm/prompts/promptFoundryUrl.test.js.map +1 -0
- package/build/esm/prompts/promptOsdkPackage.js +31 -0
- package/build/esm/prompts/promptOsdkPackage.js.map +1 -0
- package/build/esm/prompts/promptOsdkPackage.test.js +48 -0
- package/build/esm/prompts/promptOsdkPackage.test.js.map +1 -0
- package/build/esm/prompts/promptOsdkRegistryUrl.js +31 -0
- package/build/esm/prompts/promptOsdkRegistryUrl.js.map +1 -0
- package/build/esm/prompts/promptOsdkRegistryUrl.test.js +54 -0
- package/build/esm/prompts/promptOsdkRegistryUrl.test.js.map +1 -0
- package/build/esm/prompts/promptOverwrite.js +53 -0
- package/build/esm/prompts/promptOverwrite.js.map +1 -0
- package/build/esm/prompts/promptOverwrite.test.js +55 -0
- package/build/esm/prompts/promptOverwrite.test.js.map +1 -0
- package/build/esm/prompts/promptProject.js +32 -0
- package/build/esm/prompts/promptProject.js.map +1 -0
- package/build/esm/prompts/promptProject.test.js +47 -0
- package/build/esm/prompts/promptProject.test.js.map +1 -0
- package/build/esm/prompts/promptTemplate.js +45 -0
- package/build/esm/prompts/promptTemplate.js.map +1 -0
- package/build/esm/prompts/promptTemplate.test.js +48 -0
- package/build/esm/prompts/promptTemplate.test.js.map +1 -0
- package/build/esm/run.js +132 -0
- package/build/esm/run.js.map +1 -0
- package/build/esm/templates.js +56 -0
- package/build/esm/templates.js.map +1 -0
- package/package.json +8 -10
- package/build/browser/esm-D3BAJ7G6.js +0 -456
- package/build/browser/esm-D3BAJ7G6.js.map +0 -1
- package/build/browser/esm-OBQZ3MUJ.js +0 -383
- package/build/browser/esm-OBQZ3MUJ.js.map +0 -1
- package/build/browser/esm-QBJCFCPI.js +0 -375
- package/build/browser/esm-QBJCFCPI.js.map +0 -1
- package/build/browser/esm-QPUX3UHH.js +0 -908
- package/build/browser/esm-QPUX3UHH.js.map +0 -1
- package/build/browser/esm-W6PA7H72.js +0 -1176
- package/build/browser/esm-W6PA7H72.js.map +0 -1
- package/build/browser/esm-Y4LEDX6D.js +0 -253
- package/build/browser/esm-Y4LEDX6D.js.map +0 -1
- package/build/esm/esm-D3BAJ7G6.js +0 -456
- package/build/esm/esm-D3BAJ7G6.js.map +0 -1
- package/build/esm/esm-OBQZ3MUJ.js +0 -383
- package/build/esm/esm-OBQZ3MUJ.js.map +0 -1
- package/build/esm/esm-QBJCFCPI.js +0 -375
- package/build/esm/esm-QBJCFCPI.js.map +0 -1
- package/build/esm/esm-QPUX3UHH.js +0 -908
- package/build/esm/esm-QPUX3UHH.js.map +0 -1
- package/build/esm/esm-W6PA7H72.js +0 -1176
- package/build/esm/esm-W6PA7H72.js.map +0 -1
- package/build/esm/esm-Y4LEDX6D.js +0 -253
- package/build/esm/esm-Y4LEDX6D.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promptOsdkPackage.test.js","names":["afterEach","expect","test","vi","consola","promptOsdkPackage","mock","restoreAllMocks","mocked","prompt","mockResolvedValueOnce","toEqual","toHaveBeenCalledTimes","osdkPackage","not","toHaveBeenCalled"],"sources":["promptOsdkPackage.test.js"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { afterEach, expect, test, vi } from \"vitest\";\nimport { consola } from \"../consola.js\";\nimport { promptOsdkPackage } from \"./promptOsdkPackage.js\";\nvi.mock(\"../consola.js\");\nafterEach(() => {\n vi.restoreAllMocks();\n});\ntest(\"it accepts valid osdk package from prompt\", async () => {\n vi.mocked(consola).prompt.mockResolvedValueOnce(\"@myapp/sdk\");\n expect(await promptOsdkPackage({})).toEqual(\"@myapp/sdk\");\n expect(vi.mocked(consola).prompt).toHaveBeenCalledTimes(1);\n});\ntest(\"it prompts again if answered value is invalid\", async () => {\n vi.mocked(consola).prompt.mockResolvedValueOnce(\"some-package\");\n vi.mocked(consola).prompt.mockResolvedValueOnce(\"@some/package\");\n vi.mocked(consola).prompt.mockResolvedValueOnce(\"@myapp/sdk\");\n expect(await promptOsdkPackage({})).toEqual(\"@myapp/sdk\");\n expect(vi.mocked(consola).prompt).toHaveBeenCalledTimes(3);\n});\ntest(\"it accepts valid initial value without prompt\", async () => {\n expect(await promptOsdkPackage({ osdkPackage: \"@myapp/sdk\" })).toEqual(\"@myapp/sdk\");\n expect(vi.mocked(consola).prompt).not.toHaveBeenCalled();\n});\ntest(\"it prompts if initial value is invalid\", async () => {\n vi.mocked(consola).prompt.mockResolvedValueOnce(\"@myapp/sdk\");\n expect(await promptOsdkPackage({ osdkPackage: \"some-package\" })).toEqual(\"@myapp/sdk\");\n expect(vi.mocked(consola).prompt).toHaveBeenCalledTimes(1);\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,SAAS,EAAEC,MAAM,EAAEC,IAAI,EAAEC,EAAE,QAAQ,QAAQ;AACpD,SAASC,OAAO,QAAQ,eAAe;AACvC,SAASC,iBAAiB,QAAQ,wBAAwB;AAC1DF,EAAE,CAACG,IAAI,CAAC,eAAe,CAAC;AACxBN,SAAS,CAAC,MAAM;EACZG,EAAE,CAACI,eAAe,CAAC,CAAC;AACxB,CAAC,CAAC;AACFL,IAAI,CAAC,2CAA2C,EAAE,YAAY;EAC1DC,EAAE,CAACK,MAAM,CAACJ,OAAO,CAAC,CAACK,MAAM,CAACC,qBAAqB,CAAC,YAAY,CAAC;EAC7DT,MAAM,CAAC,MAAMI,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACM,OAAO,CAAC,YAAY,CAAC;EACzDV,MAAM,CAACE,EAAE,CAACK,MAAM,CAACJ,OAAO,CAAC,CAACK,MAAM,CAAC,CAACG,qBAAqB,CAAC,CAAC,CAAC;AAC9D,CAAC,CAAC;AACFV,IAAI,CAAC,+CAA+C,EAAE,YAAY;EAC9DC,EAAE,CAACK,MAAM,CAACJ,OAAO,CAAC,CAACK,MAAM,CAACC,qBAAqB,CAAC,cAAc,CAAC;EAC/DP,EAAE,CAACK,MAAM,CAACJ,OAAO,CAAC,CAACK,MAAM,CAACC,qBAAqB,CAAC,eAAe,CAAC;EAChEP,EAAE,CAACK,MAAM,CAACJ,OAAO,CAAC,CAACK,MAAM,CAACC,qBAAqB,CAAC,YAAY,CAAC;EAC7DT,MAAM,CAAC,MAAMI,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACM,OAAO,CAAC,YAAY,CAAC;EACzDV,MAAM,CAACE,EAAE,CAACK,MAAM,CAACJ,OAAO,CAAC,CAACK,MAAM,CAAC,CAACG,qBAAqB,CAAC,CAAC,CAAC;AAC9D,CAAC,CAAC;AACFV,IAAI,CAAC,+CAA+C,EAAE,YAAY;EAC9DD,MAAM,CAAC,MAAMI,iBAAiB,CAAC;IAAEQ,WAAW,EAAE;EAAa,CAAC,CAAC,CAAC,CAACF,OAAO,CAAC,YAAY,CAAC;EACpFV,MAAM,CAACE,EAAE,CAACK,MAAM,CAACJ,OAAO,CAAC,CAACK,MAAM,CAAC,CAACK,GAAG,CAACC,gBAAgB,CAAC,CAAC;AAC5D,CAAC,CAAC;AACFb,IAAI,CAAC,wCAAwC,EAAE,YAAY;EACvDC,EAAE,CAACK,MAAM,CAACJ,OAAO,CAAC,CAACK,MAAM,CAACC,qBAAqB,CAAC,YAAY,CAAC;EAC7DT,MAAM,CAAC,MAAMI,iBAAiB,CAAC;IAAEQ,WAAW,EAAE;EAAe,CAAC,CAAC,CAAC,CAACF,OAAO,CAAC,YAAY,CAAC;EACtFV,MAAM,CAACE,EAAE,CAACK,MAAM,CAACJ,OAAO,CAAC,CAACK,MAAM,CAAC,CAACG,qBAAqB,CAAC,CAAC,CAAC;AAC9D,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2023 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { consola } from "../consola.js";
|
|
17
|
+
import { italic } from "../highlight.js";
|
|
18
|
+
export async function promptOsdkRegistryUrl({
|
|
19
|
+
osdkRegistryUrl
|
|
20
|
+
}) {
|
|
21
|
+
while (osdkRegistryUrl == null || !/^https:\/\/[^/]+\/artifacts\/api\/repositories\/ri\.artifacts\.[^/]+\/contents\/release\/npm\/?$/.test(osdkRegistryUrl)) {
|
|
22
|
+
if (osdkRegistryUrl != null) {
|
|
23
|
+
consola.fail("Please enter a valid NPM registry URL to install your OSDK package");
|
|
24
|
+
}
|
|
25
|
+
osdkRegistryUrl = await consola.prompt(`Enter the NPM registry URL to install your OSDK package from Developer Console:\n${italic("(Example: https://example.palantirfoundry.com/artifacts/api/repositories/ri.artifacts.main.repository.a4a7fe1c-486f-4226-b706-7b90005f527d/contents/release/npm)")}`, {
|
|
26
|
+
type: "text"
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
return osdkRegistryUrl.replace(/\/$/, "");
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=promptOsdkRegistryUrl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promptOsdkRegistryUrl.js","names":["consola","italic","promptOsdkRegistryUrl","osdkRegistryUrl","test","fail","prompt","type","replace"],"sources":["promptOsdkRegistryUrl.js"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { consola } from \"../consola.js\";\nimport { italic } from \"../highlight.js\";\nexport async function promptOsdkRegistryUrl({ osdkRegistryUrl }) {\n while (osdkRegistryUrl == null\n || !/^https:\\/\\/[^/]+\\/artifacts\\/api\\/repositories\\/ri\\.artifacts\\.[^/]+\\/contents\\/release\\/npm\\/?$/\n .test(osdkRegistryUrl)) {\n if (osdkRegistryUrl != null) {\n consola.fail(\"Please enter a valid NPM registry URL to install your OSDK package\");\n }\n osdkRegistryUrl = await consola.prompt(`Enter the NPM registry URL to install your OSDK package from Developer Console:\\n${italic(\"(Example: https://example.palantirfoundry.com/artifacts/api/repositories/ri.artifacts.main.repository.a4a7fe1c-486f-4226-b706-7b90005f527d/contents/release/npm)\")}`, { type: \"text\" });\n }\n return osdkRegistryUrl.replace(/\\/$/, \"\");\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,OAAO,QAAQ,eAAe;AACvC,SAASC,MAAM,QAAQ,iBAAiB;AACxC,OAAO,eAAeC,qBAAqBA,CAAC;EAAEC;AAAgB,CAAC,EAAE;EAC7D,OAAOA,eAAe,IAAI,IAAI,IACvB,CAAC,kGAAkG,CACjGC,IAAI,CAACD,eAAe,CAAC,EAAE;IAC5B,IAAIA,eAAe,IAAI,IAAI,EAAE;MACzBH,OAAO,CAACK,IAAI,CAAC,oEAAoE,CAAC;IACtF;IACAF,eAAe,GAAG,MAAMH,OAAO,CAACM,MAAM,CAAC,oFAAoFL,MAAM,CAAC,kKAAkK,CAAC,EAAE,EAAE;MAAEM,IAAI,EAAE;IAAO,CAAC,CAAC;EAC9T;EACA,OAAOJ,eAAe,CAACK,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AAC7C","ignoreList":[]}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2023 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { afterEach, expect, test, vi } from "vitest";
|
|
17
|
+
import { consola } from "../consola.js";
|
|
18
|
+
import { promptOsdkRegistryUrl } from "./promptOsdkRegistryUrl.js";
|
|
19
|
+
vi.mock("../consola.js");
|
|
20
|
+
afterEach(() => {
|
|
21
|
+
vi.restoreAllMocks();
|
|
22
|
+
});
|
|
23
|
+
const valid = "https://example.palantirfoundry.com/artifacts/api/repositories/ri.artifacts.main.repository.fake/contents/release/npm";
|
|
24
|
+
test("it accepts valid osdk registry url from prompt", async () => {
|
|
25
|
+
vi.mocked(consola).prompt.mockResolvedValueOnce(valid);
|
|
26
|
+
expect(await promptOsdkRegistryUrl({})).toEqual(valid);
|
|
27
|
+
expect(vi.mocked(consola).prompt).toHaveBeenCalledTimes(1);
|
|
28
|
+
});
|
|
29
|
+
test("it prompts again if answered value is invalid", async () => {
|
|
30
|
+
vi.mocked(consola).prompt.mockResolvedValueOnce("invalid");
|
|
31
|
+
vi.mocked(consola).prompt.mockResolvedValueOnce("https://abc.com/something");
|
|
32
|
+
vi.mocked(consola).prompt.mockResolvedValueOnce(valid);
|
|
33
|
+
expect(await promptOsdkRegistryUrl({})).toEqual(valid);
|
|
34
|
+
expect(vi.mocked(consola).prompt).toHaveBeenCalledTimes(3);
|
|
35
|
+
});
|
|
36
|
+
test("it accepts valid initial value without prompt", async () => {
|
|
37
|
+
expect(await promptOsdkRegistryUrl({
|
|
38
|
+
osdkRegistryUrl: valid
|
|
39
|
+
})).toEqual(valid);
|
|
40
|
+
expect(vi.mocked(consola).prompt).not.toHaveBeenCalled();
|
|
41
|
+
});
|
|
42
|
+
test("it prompts if initial value is invalid", async () => {
|
|
43
|
+
vi.mocked(consola).prompt.mockResolvedValueOnce(valid);
|
|
44
|
+
expect(await promptOsdkRegistryUrl({
|
|
45
|
+
osdkRegistryUrl: "invalid"
|
|
46
|
+
})).toEqual(valid);
|
|
47
|
+
expect(vi.mocked(consola).prompt).toHaveBeenCalledTimes(1);
|
|
48
|
+
});
|
|
49
|
+
test("it strips trailing slash from url", async () => {
|
|
50
|
+
vi.mocked(consola).prompt.mockResolvedValueOnce(valid + "/");
|
|
51
|
+
expect(await promptOsdkRegistryUrl({})).toEqual(valid);
|
|
52
|
+
expect(vi.mocked(consola).prompt).toHaveBeenCalledTimes(1);
|
|
53
|
+
});
|
|
54
|
+
//# sourceMappingURL=promptOsdkRegistryUrl.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promptOsdkRegistryUrl.test.js","names":["afterEach","expect","test","vi","consola","promptOsdkRegistryUrl","mock","restoreAllMocks","valid","mocked","prompt","mockResolvedValueOnce","toEqual","toHaveBeenCalledTimes","osdkRegistryUrl","not","toHaveBeenCalled"],"sources":["promptOsdkRegistryUrl.test.js"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { afterEach, expect, test, vi } from \"vitest\";\nimport { consola } from \"../consola.js\";\nimport { promptOsdkRegistryUrl } from \"./promptOsdkRegistryUrl.js\";\nvi.mock(\"../consola.js\");\nafterEach(() => {\n vi.restoreAllMocks();\n});\nconst valid = \"https://example.palantirfoundry.com/artifacts/api/repositories/ri.artifacts.main.repository.fake/contents/release/npm\";\ntest(\"it accepts valid osdk registry url from prompt\", async () => {\n vi.mocked(consola).prompt.mockResolvedValueOnce(valid);\n expect(await promptOsdkRegistryUrl({})).toEqual(valid);\n expect(vi.mocked(consola).prompt).toHaveBeenCalledTimes(1);\n});\ntest(\"it prompts again if answered value is invalid\", async () => {\n vi.mocked(consola).prompt.mockResolvedValueOnce(\"invalid\");\n vi.mocked(consola).prompt.mockResolvedValueOnce(\"https://abc.com/something\");\n vi.mocked(consola).prompt.mockResolvedValueOnce(valid);\n expect(await promptOsdkRegistryUrl({})).toEqual(valid);\n expect(vi.mocked(consola).prompt).toHaveBeenCalledTimes(3);\n});\ntest(\"it accepts valid initial value without prompt\", async () => {\n expect(await promptOsdkRegistryUrl({ osdkRegistryUrl: valid })).toEqual(valid);\n expect(vi.mocked(consola).prompt).not.toHaveBeenCalled();\n});\ntest(\"it prompts if initial value is invalid\", async () => {\n vi.mocked(consola).prompt.mockResolvedValueOnce(valid);\n expect(await promptOsdkRegistryUrl({ osdkRegistryUrl: \"invalid\" })).toEqual(valid);\n expect(vi.mocked(consola).prompt).toHaveBeenCalledTimes(1);\n});\ntest(\"it strips trailing slash from url\", async () => {\n vi.mocked(consola).prompt.mockResolvedValueOnce(valid + \"/\");\n expect(await promptOsdkRegistryUrl({})).toEqual(valid);\n expect(vi.mocked(consola).prompt).toHaveBeenCalledTimes(1);\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,SAAS,EAAEC,MAAM,EAAEC,IAAI,EAAEC,EAAE,QAAQ,QAAQ;AACpD,SAASC,OAAO,QAAQ,eAAe;AACvC,SAASC,qBAAqB,QAAQ,4BAA4B;AAClEF,EAAE,CAACG,IAAI,CAAC,eAAe,CAAC;AACxBN,SAAS,CAAC,MAAM;EACZG,EAAE,CAACI,eAAe,CAAC,CAAC;AACxB,CAAC,CAAC;AACF,MAAMC,KAAK,GAAG,uHAAuH;AACrIN,IAAI,CAAC,gDAAgD,EAAE,YAAY;EAC/DC,EAAE,CAACM,MAAM,CAACL,OAAO,CAAC,CAACM,MAAM,CAACC,qBAAqB,CAACH,KAAK,CAAC;EACtDP,MAAM,CAAC,MAAMI,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACO,OAAO,CAACJ,KAAK,CAAC;EACtDP,MAAM,CAACE,EAAE,CAACM,MAAM,CAACL,OAAO,CAAC,CAACM,MAAM,CAAC,CAACG,qBAAqB,CAAC,CAAC,CAAC;AAC9D,CAAC,CAAC;AACFX,IAAI,CAAC,+CAA+C,EAAE,YAAY;EAC9DC,EAAE,CAACM,MAAM,CAACL,OAAO,CAAC,CAACM,MAAM,CAACC,qBAAqB,CAAC,SAAS,CAAC;EAC1DR,EAAE,CAACM,MAAM,CAACL,OAAO,CAAC,CAACM,MAAM,CAACC,qBAAqB,CAAC,2BAA2B,CAAC;EAC5ER,EAAE,CAACM,MAAM,CAACL,OAAO,CAAC,CAACM,MAAM,CAACC,qBAAqB,CAACH,KAAK,CAAC;EACtDP,MAAM,CAAC,MAAMI,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACO,OAAO,CAACJ,KAAK,CAAC;EACtDP,MAAM,CAACE,EAAE,CAACM,MAAM,CAACL,OAAO,CAAC,CAACM,MAAM,CAAC,CAACG,qBAAqB,CAAC,CAAC,CAAC;AAC9D,CAAC,CAAC;AACFX,IAAI,CAAC,+CAA+C,EAAE,YAAY;EAC9DD,MAAM,CAAC,MAAMI,qBAAqB,CAAC;IAAES,eAAe,EAAEN;EAAM,CAAC,CAAC,CAAC,CAACI,OAAO,CAACJ,KAAK,CAAC;EAC9EP,MAAM,CAACE,EAAE,CAACM,MAAM,CAACL,OAAO,CAAC,CAACM,MAAM,CAAC,CAACK,GAAG,CAACC,gBAAgB,CAAC,CAAC;AAC5D,CAAC,CAAC;AACFd,IAAI,CAAC,wCAAwC,EAAE,YAAY;EACvDC,EAAE,CAACM,MAAM,CAACL,OAAO,CAAC,CAACM,MAAM,CAACC,qBAAqB,CAACH,KAAK,CAAC;EACtDP,MAAM,CAAC,MAAMI,qBAAqB,CAAC;IAAES,eAAe,EAAE;EAAU,CAAC,CAAC,CAAC,CAACF,OAAO,CAACJ,KAAK,CAAC;EAClFP,MAAM,CAACE,EAAE,CAACM,MAAM,CAACL,OAAO,CAAC,CAACM,MAAM,CAAC,CAACG,qBAAqB,CAAC,CAAC,CAAC;AAC9D,CAAC,CAAC;AACFX,IAAI,CAAC,mCAAmC,EAAE,YAAY;EAClDC,EAAE,CAACM,MAAM,CAACL,OAAO,CAAC,CAACM,MAAM,CAACC,qBAAqB,CAACH,KAAK,GAAG,GAAG,CAAC;EAC5DP,MAAM,CAAC,MAAMI,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACO,OAAO,CAACJ,KAAK,CAAC;EACtDP,MAAM,CAACE,EAAE,CAACM,MAAM,CAACL,OAAO,CAAC,CAACM,MAAM,CAAC,CAACG,qBAAqB,CAAC,CAAC,CAAC;AAC9D,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2023 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import fs from "node:fs";
|
|
17
|
+
import path from "node:path";
|
|
18
|
+
import { consola } from "../consola.js";
|
|
19
|
+
import { green } from "../highlight.js";
|
|
20
|
+
export async function promptOverwrite({
|
|
21
|
+
project,
|
|
22
|
+
overwrite
|
|
23
|
+
}) {
|
|
24
|
+
if (overwrite != null) {
|
|
25
|
+
return overwrite;
|
|
26
|
+
}
|
|
27
|
+
if (!fs.existsSync(path.join(process.cwd(), project))) {
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
const result = await consola.prompt(`The directory ${green(project)} already exists do you want to overwrite or ignore it?`, {
|
|
31
|
+
type: "select",
|
|
32
|
+
options: [{
|
|
33
|
+
label: "Remove existing files and continue",
|
|
34
|
+
value: "overwrite"
|
|
35
|
+
}, {
|
|
36
|
+
label: "Ignore files and continue",
|
|
37
|
+
value: "ignore"
|
|
38
|
+
}, {
|
|
39
|
+
label: "Cancel",
|
|
40
|
+
value: "cancel"
|
|
41
|
+
}]
|
|
42
|
+
});
|
|
43
|
+
switch (result) {
|
|
44
|
+
case "overwrite":
|
|
45
|
+
return true;
|
|
46
|
+
case "ignore":
|
|
47
|
+
return false;
|
|
48
|
+
case "cancel":
|
|
49
|
+
consola.fail("Operation cancelled");
|
|
50
|
+
process.exit(0);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=promptOverwrite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promptOverwrite.js","names":["fs","path","consola","green","promptOverwrite","project","overwrite","existsSync","join","process","cwd","result","prompt","type","options","label","value","fail","exit"],"sources":["promptOverwrite.js"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { consola } from \"../consola.js\";\nimport { green } from \"../highlight.js\";\nexport async function promptOverwrite({ project, overwrite, }) {\n if (overwrite != null) {\n return overwrite;\n }\n if (!fs.existsSync(path.join(process.cwd(), project))) {\n return true;\n }\n const result = (await consola.prompt(`The directory ${green(project)} already exists do you want to overwrite or ignore it?`, {\n type: \"select\",\n options: [\n { label: \"Remove existing files and continue\", value: \"overwrite\" },\n { label: \"Ignore files and continue\", value: \"ignore\" },\n { label: \"Cancel\", value: \"cancel\" },\n ],\n }));\n switch (result) {\n case \"overwrite\":\n return true;\n case \"ignore\":\n return false;\n case \"cancel\":\n consola.fail(\"Operation cancelled\");\n process.exit(0);\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAOA,EAAE,MAAM,SAAS;AACxB,OAAOC,IAAI,MAAM,WAAW;AAC5B,SAASC,OAAO,QAAQ,eAAe;AACvC,SAASC,KAAK,QAAQ,iBAAiB;AACvC,OAAO,eAAeC,eAAeA,CAAC;EAAEC,OAAO;EAAEC;AAAW,CAAC,EAAE;EAC3D,IAAIA,SAAS,IAAI,IAAI,EAAE;IACnB,OAAOA,SAAS;EACpB;EACA,IAAI,CAACN,EAAE,CAACO,UAAU,CAACN,IAAI,CAACO,IAAI,CAACC,OAAO,CAACC,GAAG,CAAC,CAAC,EAAEL,OAAO,CAAC,CAAC,EAAE;IACnD,OAAO,IAAI;EACf;EACA,MAAMM,MAAM,GAAI,MAAMT,OAAO,CAACU,MAAM,CAAC,iBAAiBT,KAAK,CAACE,OAAO,CAAC,wDAAwD,EAAE;IAC1HQ,IAAI,EAAE,QAAQ;IACdC,OAAO,EAAE,CACL;MAAEC,KAAK,EAAE,oCAAoC;MAAEC,KAAK,EAAE;IAAY,CAAC,EACnE;MAAED,KAAK,EAAE,2BAA2B;MAAEC,KAAK,EAAE;IAAS,CAAC,EACvD;MAAED,KAAK,EAAE,QAAQ;MAAEC,KAAK,EAAE;IAAS,CAAC;EAE5C,CAAC,CAAE;EACH,QAAQL,MAAM;IACV,KAAK,WAAW;MACZ,OAAO,IAAI;IACf,KAAK,QAAQ;MACT,OAAO,KAAK;IAChB,KAAK,QAAQ;MACTT,OAAO,CAACe,IAAI,CAAC,qBAAqB,CAAC;MACnCR,OAAO,CAACS,IAAI,CAAC,CAAC,CAAC;EACvB;AACJ","ignoreList":[]}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2023 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import fs from "node:fs";
|
|
17
|
+
import { afterEach, expect, test, vi } from "vitest";
|
|
18
|
+
import { consola } from "../consola.js";
|
|
19
|
+
import { promptOverwrite } from "./promptOverwrite.js";
|
|
20
|
+
vi.mock("../consola.js");
|
|
21
|
+
vi.mock("node:fs");
|
|
22
|
+
afterEach(() => {
|
|
23
|
+
vi.restoreAllMocks();
|
|
24
|
+
});
|
|
25
|
+
test("it accepts valid 'overwrite' from prompt", async () => {
|
|
26
|
+
vi.mocked(fs.existsSync).mockReturnValueOnce(true);
|
|
27
|
+
vi.mocked(consola).prompt.mockResolvedValueOnce("overwrite");
|
|
28
|
+
expect(await promptOverwrite({
|
|
29
|
+
project: "abc"
|
|
30
|
+
})).toBe(true);
|
|
31
|
+
expect(vi.mocked(consola).prompt).toHaveBeenCalledTimes(1);
|
|
32
|
+
});
|
|
33
|
+
test("it accepts valid 'ignore' from prompt", async () => {
|
|
34
|
+
vi.mocked(fs.existsSync).mockReturnValueOnce(true);
|
|
35
|
+
vi.mocked(consola).prompt.mockResolvedValueOnce("ignore");
|
|
36
|
+
expect(await promptOverwrite({
|
|
37
|
+
project: "abc"
|
|
38
|
+
})).toBe(false);
|
|
39
|
+
expect(vi.mocked(consola).prompt).toHaveBeenCalledTimes(1);
|
|
40
|
+
});
|
|
41
|
+
test("it accepts initial value without prompt", async () => {
|
|
42
|
+
expect(await promptOverwrite({
|
|
43
|
+
project: "abc",
|
|
44
|
+
overwrite: true
|
|
45
|
+
})).toBe(true);
|
|
46
|
+
expect(vi.mocked(consola).prompt).not.toHaveBeenCalled();
|
|
47
|
+
});
|
|
48
|
+
test("it returns true if project does not already exist", async () => {
|
|
49
|
+
vi.mocked(fs.existsSync).mockReturnValueOnce(false);
|
|
50
|
+
expect(await promptOverwrite({
|
|
51
|
+
project: "abc"
|
|
52
|
+
})).toBe(true);
|
|
53
|
+
expect(vi.mocked(consola).prompt).not.toHaveBeenCalled();
|
|
54
|
+
});
|
|
55
|
+
//# sourceMappingURL=promptOverwrite.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promptOverwrite.test.js","names":["fs","afterEach","expect","test","vi","consola","promptOverwrite","mock","restoreAllMocks","mocked","existsSync","mockReturnValueOnce","prompt","mockResolvedValueOnce","project","toBe","toHaveBeenCalledTimes","overwrite","not","toHaveBeenCalled"],"sources":["promptOverwrite.test.js"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport fs from \"node:fs\";\nimport { afterEach, expect, test, vi } from \"vitest\";\nimport { consola } from \"../consola.js\";\nimport { promptOverwrite } from \"./promptOverwrite.js\";\nvi.mock(\"../consola.js\");\nvi.mock(\"node:fs\");\nafterEach(() => {\n vi.restoreAllMocks();\n});\ntest(\"it accepts valid 'overwrite' from prompt\", async () => {\n vi.mocked(fs.existsSync).mockReturnValueOnce(true);\n vi.mocked(consola).prompt.mockResolvedValueOnce(\"overwrite\");\n expect(await promptOverwrite({ project: \"abc\" })).toBe(true);\n expect(vi.mocked(consola).prompt).toHaveBeenCalledTimes(1);\n});\ntest(\"it accepts valid 'ignore' from prompt\", async () => {\n vi.mocked(fs.existsSync).mockReturnValueOnce(true);\n vi.mocked(consola).prompt.mockResolvedValueOnce(\"ignore\");\n expect(await promptOverwrite({ project: \"abc\" })).toBe(false);\n expect(vi.mocked(consola).prompt).toHaveBeenCalledTimes(1);\n});\ntest(\"it accepts initial value without prompt\", async () => {\n expect(await promptOverwrite({ project: \"abc\", overwrite: true })).toBe(true);\n expect(vi.mocked(consola).prompt).not.toHaveBeenCalled();\n});\ntest(\"it returns true if project does not already exist\", async () => {\n vi.mocked(fs.existsSync).mockReturnValueOnce(false);\n expect(await promptOverwrite({ project: \"abc\" })).toBe(true);\n expect(vi.mocked(consola).prompt).not.toHaveBeenCalled();\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAOA,EAAE,MAAM,SAAS;AACxB,SAASC,SAAS,EAAEC,MAAM,EAAEC,IAAI,EAAEC,EAAE,QAAQ,QAAQ;AACpD,SAASC,OAAO,QAAQ,eAAe;AACvC,SAASC,eAAe,QAAQ,sBAAsB;AACtDF,EAAE,CAACG,IAAI,CAAC,eAAe,CAAC;AACxBH,EAAE,CAACG,IAAI,CAAC,SAAS,CAAC;AAClBN,SAAS,CAAC,MAAM;EACZG,EAAE,CAACI,eAAe,CAAC,CAAC;AACxB,CAAC,CAAC;AACFL,IAAI,CAAC,0CAA0C,EAAE,YAAY;EACzDC,EAAE,CAACK,MAAM,CAACT,EAAE,CAACU,UAAU,CAAC,CAACC,mBAAmB,CAAC,IAAI,CAAC;EAClDP,EAAE,CAACK,MAAM,CAACJ,OAAO,CAAC,CAACO,MAAM,CAACC,qBAAqB,CAAC,WAAW,CAAC;EAC5DX,MAAM,CAAC,MAAMI,eAAe,CAAC;IAAEQ,OAAO,EAAE;EAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;EAC5Db,MAAM,CAACE,EAAE,CAACK,MAAM,CAACJ,OAAO,CAAC,CAACO,MAAM,CAAC,CAACI,qBAAqB,CAAC,CAAC,CAAC;AAC9D,CAAC,CAAC;AACFb,IAAI,CAAC,uCAAuC,EAAE,YAAY;EACtDC,EAAE,CAACK,MAAM,CAACT,EAAE,CAACU,UAAU,CAAC,CAACC,mBAAmB,CAAC,IAAI,CAAC;EAClDP,EAAE,CAACK,MAAM,CAACJ,OAAO,CAAC,CAACO,MAAM,CAACC,qBAAqB,CAAC,QAAQ,CAAC;EACzDX,MAAM,CAAC,MAAMI,eAAe,CAAC;IAAEQ,OAAO,EAAE;EAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,KAAK,CAAC;EAC7Db,MAAM,CAACE,EAAE,CAACK,MAAM,CAACJ,OAAO,CAAC,CAACO,MAAM,CAAC,CAACI,qBAAqB,CAAC,CAAC,CAAC;AAC9D,CAAC,CAAC;AACFb,IAAI,CAAC,yCAAyC,EAAE,YAAY;EACxDD,MAAM,CAAC,MAAMI,eAAe,CAAC;IAAEQ,OAAO,EAAE,KAAK;IAAEG,SAAS,EAAE;EAAK,CAAC,CAAC,CAAC,CAACF,IAAI,CAAC,IAAI,CAAC;EAC7Eb,MAAM,CAACE,EAAE,CAACK,MAAM,CAACJ,OAAO,CAAC,CAACO,MAAM,CAAC,CAACM,GAAG,CAACC,gBAAgB,CAAC,CAAC;AAC5D,CAAC,CAAC;AACFhB,IAAI,CAAC,mDAAmD,EAAE,YAAY;EAClEC,EAAE,CAACK,MAAM,CAACT,EAAE,CAACU,UAAU,CAAC,CAACC,mBAAmB,CAAC,KAAK,CAAC;EACnDT,MAAM,CAAC,MAAMI,eAAe,CAAC;IAAEQ,OAAO,EAAE;EAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;EAC5Db,MAAM,CAACE,EAAE,CAACK,MAAM,CAACJ,OAAO,CAAC,CAACO,MAAM,CAAC,CAACM,GAAG,CAACC,gBAAgB,CAAC,CAAC;AAC5D,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2023 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { consola } from "../consola.js";
|
|
17
|
+
export async function promptProject({
|
|
18
|
+
project
|
|
19
|
+
}) {
|
|
20
|
+
while (project == null || !/^[a-zA-Z0-9-_]+$/.test(project)) {
|
|
21
|
+
if (project != null) {
|
|
22
|
+
consola.fail("Project name can only contain alphanumeric characters, hyphens and underscores");
|
|
23
|
+
}
|
|
24
|
+
project = await consola.prompt("Project name:", {
|
|
25
|
+
type: "text",
|
|
26
|
+
placeholder: "my-osdk-app",
|
|
27
|
+
default: "my-osdk-app"
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
return project;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=promptProject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promptProject.js","names":["consola","promptProject","project","test","fail","prompt","type","placeholder","default"],"sources":["promptProject.js"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { consola } from \"../consola.js\";\nexport async function promptProject({ project }) {\n while (project == null || !/^[a-zA-Z0-9-_]+$/.test(project)) {\n if (project != null) {\n consola.fail(\"Project name can only contain alphanumeric characters, hyphens and underscores\");\n }\n project = await consola.prompt(\"Project name:\", {\n type: \"text\",\n placeholder: \"my-osdk-app\",\n default: \"my-osdk-app\",\n });\n }\n return project;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,OAAO,QAAQ,eAAe;AACvC,OAAO,eAAeC,aAAaA,CAAC;EAAEC;AAAQ,CAAC,EAAE;EAC7C,OAAOA,OAAO,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAACC,IAAI,CAACD,OAAO,CAAC,EAAE;IACzD,IAAIA,OAAO,IAAI,IAAI,EAAE;MACjBF,OAAO,CAACI,IAAI,CAAC,gFAAgF,CAAC;IAClG;IACAF,OAAO,GAAG,MAAMF,OAAO,CAACK,MAAM,CAAC,eAAe,EAAE;MAC5CC,IAAI,EAAE,MAAM;MACZC,WAAW,EAAE,aAAa;MAC1BC,OAAO,EAAE;IACb,CAAC,CAAC;EACN;EACA,OAAON,OAAO;AAClB","ignoreList":[]}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2023 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { afterEach, expect, test, vi } from "vitest";
|
|
17
|
+
import { consola } from "../consola.js";
|
|
18
|
+
import { promptProject } from "./promptProject.js";
|
|
19
|
+
vi.mock("../consola.js");
|
|
20
|
+
afterEach(() => {
|
|
21
|
+
vi.restoreAllMocks();
|
|
22
|
+
});
|
|
23
|
+
test("it accepts valid project from prompt", async () => {
|
|
24
|
+
vi.mocked(consola).prompt.mockResolvedValueOnce("my-osdk-app");
|
|
25
|
+
expect(await promptProject({})).toEqual("my-osdk-app");
|
|
26
|
+
expect(vi.mocked(consola).prompt).toHaveBeenCalledTimes(1);
|
|
27
|
+
});
|
|
28
|
+
test("it prompts again if answered value is invalid", async () => {
|
|
29
|
+
vi.mocked(consola).prompt.mockResolvedValueOnce("!@#$%^&*()_+");
|
|
30
|
+
vi.mocked(consola).prompt.mockResolvedValueOnce("my-osdk-app");
|
|
31
|
+
expect(await promptProject({})).toEqual("my-osdk-app");
|
|
32
|
+
expect(vi.mocked(consola).prompt).toHaveBeenCalledTimes(2);
|
|
33
|
+
});
|
|
34
|
+
test("it accepts valid initial value without prompt", async () => {
|
|
35
|
+
expect(await promptProject({
|
|
36
|
+
project: "my-osdk-app"
|
|
37
|
+
})).toEqual("my-osdk-app");
|
|
38
|
+
expect(vi.mocked(consola).prompt).not.toHaveBeenCalled();
|
|
39
|
+
});
|
|
40
|
+
test("it prompts if initial value is invalid", async () => {
|
|
41
|
+
vi.mocked(consola).prompt.mockResolvedValueOnce("my-osdk-app");
|
|
42
|
+
expect(await promptProject({
|
|
43
|
+
project: "!@#$%^&*()_+"
|
|
44
|
+
})).toEqual("my-osdk-app");
|
|
45
|
+
expect(vi.mocked(consola).prompt).toHaveBeenCalledTimes(1);
|
|
46
|
+
});
|
|
47
|
+
//# sourceMappingURL=promptProject.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promptProject.test.js","names":["afterEach","expect","test","vi","consola","promptProject","mock","restoreAllMocks","mocked","prompt","mockResolvedValueOnce","toEqual","toHaveBeenCalledTimes","project","not","toHaveBeenCalled"],"sources":["promptProject.test.js"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { afterEach, expect, test, vi } from \"vitest\";\nimport { consola } from \"../consola.js\";\nimport { promptProject } from \"./promptProject.js\";\nvi.mock(\"../consola.js\");\nafterEach(() => {\n vi.restoreAllMocks();\n});\ntest(\"it accepts valid project from prompt\", async () => {\n vi.mocked(consola).prompt.mockResolvedValueOnce(\"my-osdk-app\");\n expect(await promptProject({})).toEqual(\"my-osdk-app\");\n expect(vi.mocked(consola).prompt).toHaveBeenCalledTimes(1);\n});\ntest(\"it prompts again if answered value is invalid\", async () => {\n vi.mocked(consola).prompt.mockResolvedValueOnce(\"!@#$%^&*()_+\");\n vi.mocked(consola).prompt.mockResolvedValueOnce(\"my-osdk-app\");\n expect(await promptProject({})).toEqual(\"my-osdk-app\");\n expect(vi.mocked(consola).prompt).toHaveBeenCalledTimes(2);\n});\ntest(\"it accepts valid initial value without prompt\", async () => {\n expect(await promptProject({ project: \"my-osdk-app\" })).toEqual(\"my-osdk-app\");\n expect(vi.mocked(consola).prompt).not.toHaveBeenCalled();\n});\ntest(\"it prompts if initial value is invalid\", async () => {\n vi.mocked(consola).prompt.mockResolvedValueOnce(\"my-osdk-app\");\n expect(await promptProject({ project: \"!@#$%^&*()_+\" })).toEqual(\"my-osdk-app\");\n expect(vi.mocked(consola).prompt).toHaveBeenCalledTimes(1);\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,SAAS,EAAEC,MAAM,EAAEC,IAAI,EAAEC,EAAE,QAAQ,QAAQ;AACpD,SAASC,OAAO,QAAQ,eAAe;AACvC,SAASC,aAAa,QAAQ,oBAAoB;AAClDF,EAAE,CAACG,IAAI,CAAC,eAAe,CAAC;AACxBN,SAAS,CAAC,MAAM;EACZG,EAAE,CAACI,eAAe,CAAC,CAAC;AACxB,CAAC,CAAC;AACFL,IAAI,CAAC,sCAAsC,EAAE,YAAY;EACrDC,EAAE,CAACK,MAAM,CAACJ,OAAO,CAAC,CAACK,MAAM,CAACC,qBAAqB,CAAC,aAAa,CAAC;EAC9DT,MAAM,CAAC,MAAMI,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAACM,OAAO,CAAC,aAAa,CAAC;EACtDV,MAAM,CAACE,EAAE,CAACK,MAAM,CAACJ,OAAO,CAAC,CAACK,MAAM,CAAC,CAACG,qBAAqB,CAAC,CAAC,CAAC;AAC9D,CAAC,CAAC;AACFV,IAAI,CAAC,+CAA+C,EAAE,YAAY;EAC9DC,EAAE,CAACK,MAAM,CAACJ,OAAO,CAAC,CAACK,MAAM,CAACC,qBAAqB,CAAC,cAAc,CAAC;EAC/DP,EAAE,CAACK,MAAM,CAACJ,OAAO,CAAC,CAACK,MAAM,CAACC,qBAAqB,CAAC,aAAa,CAAC;EAC9DT,MAAM,CAAC,MAAMI,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAACM,OAAO,CAAC,aAAa,CAAC;EACtDV,MAAM,CAACE,EAAE,CAACK,MAAM,CAACJ,OAAO,CAAC,CAACK,MAAM,CAAC,CAACG,qBAAqB,CAAC,CAAC,CAAC;AAC9D,CAAC,CAAC;AACFV,IAAI,CAAC,+CAA+C,EAAE,YAAY;EAC9DD,MAAM,CAAC,MAAMI,aAAa,CAAC;IAAEQ,OAAO,EAAE;EAAc,CAAC,CAAC,CAAC,CAACF,OAAO,CAAC,aAAa,CAAC;EAC9EV,MAAM,CAACE,EAAE,CAACK,MAAM,CAACJ,OAAO,CAAC,CAACK,MAAM,CAAC,CAACK,GAAG,CAACC,gBAAgB,CAAC,CAAC;AAC5D,CAAC,CAAC;AACFb,IAAI,CAAC,wCAAwC,EAAE,YAAY;EACvDC,EAAE,CAACK,MAAM,CAACJ,OAAO,CAAC,CAACK,MAAM,CAACC,qBAAqB,CAAC,aAAa,CAAC;EAC9DT,MAAM,CAAC,MAAMI,aAAa,CAAC;IAAEQ,OAAO,EAAE;EAAe,CAAC,CAAC,CAAC,CAACF,OAAO,CAAC,aAAa,CAAC;EAC/EV,MAAM,CAACE,EAAE,CAACK,MAAM,CAACJ,OAAO,CAAC,CAACK,MAAM,CAAC,CAACG,qBAAqB,CAAC,CAAC,CAAC;AAC9D,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2023 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { consola } from "../consola.js";
|
|
17
|
+
import { green } from "../highlight.js";
|
|
18
|
+
import { TEMPLATES } from "../templates.js";
|
|
19
|
+
export async function promptTemplate(parsed) {
|
|
20
|
+
let useBeta = parsed.beta ?? false;
|
|
21
|
+
let template = TEMPLATES.find(t => t.id === parsed.template || t.id === `template-${parsed.template}`);
|
|
22
|
+
if (template == null) {
|
|
23
|
+
const availableTemplates = TEMPLATES.filter(template => !template.hidden && (useBeta ? template.isBeta === true
|
|
24
|
+
// isBeta could be null
|
|
25
|
+
: !template.isBeta));
|
|
26
|
+
if (availableTemplates.length === 0) {
|
|
27
|
+
throw new Error("No available templates found for the selected options.");
|
|
28
|
+
}
|
|
29
|
+
const templateId = await consola.prompt(parsed.template != null ? `The provided template ${green(parsed.template)} is invalid please select a framework:` : "Select a framework:", {
|
|
30
|
+
type: "select",
|
|
31
|
+
options: availableTemplates.map(template => ({
|
|
32
|
+
value: template.id,
|
|
33
|
+
label: template.label
|
|
34
|
+
}))
|
|
35
|
+
// Types for "select" are wrong the value is returned rather than the option object
|
|
36
|
+
// https://github.com/unjs/consola/pull/238
|
|
37
|
+
});
|
|
38
|
+
template = TEMPLATES.find(t => t.id === templateId);
|
|
39
|
+
if (template == null) {
|
|
40
|
+
throw new Error(`Template ${templateId} should be found`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return template;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=promptTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promptTemplate.js","names":["consola","green","TEMPLATES","promptTemplate","parsed","useBeta","beta","template","find","t","id","availableTemplates","filter","hidden","isBeta","length","Error","templateId","prompt","type","options","map","value","label"],"sources":["promptTemplate.js"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { consola } from \"../consola.js\";\nimport { green } from \"../highlight.js\";\nimport { TEMPLATES } from \"../templates.js\";\nexport async function promptTemplate(parsed) {\n let useBeta = parsed.beta ?? false;\n let template = TEMPLATES.find((t) => t.id === parsed.template || t.id === `template-${parsed.template}`);\n if (template == null) {\n const availableTemplates = TEMPLATES.filter(template => !template.hidden\n && (useBeta\n ? template.isBeta === true\n // isBeta could be null\n : !template.isBeta));\n if (availableTemplates.length === 0) {\n throw new Error(\"No available templates found for the selected options.\");\n }\n const templateId = (await consola.prompt(parsed.template != null\n ? `The provided template ${green(parsed.template)} is invalid please select a framework:`\n : \"Select a framework:\", {\n type: \"select\",\n options: availableTemplates.map((template) => ({\n value: template.id,\n label: template.label,\n })),\n // Types for \"select\" are wrong the value is returned rather than the option object\n // https://github.com/unjs/consola/pull/238\n }));\n template = TEMPLATES.find((t) => t.id === templateId);\n if (template == null) {\n throw new Error(`Template ${templateId} should be found`);\n }\n }\n return template;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,OAAO,QAAQ,eAAe;AACvC,SAASC,KAAK,QAAQ,iBAAiB;AACvC,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,OAAO,eAAeC,cAAcA,CAACC,MAAM,EAAE;EACzC,IAAIC,OAAO,GAAGD,MAAM,CAACE,IAAI,IAAI,KAAK;EAClC,IAAIC,QAAQ,GAAGL,SAAS,CAACM,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,EAAE,KAAKN,MAAM,CAACG,QAAQ,IAAIE,CAAC,CAACC,EAAE,KAAK,YAAYN,MAAM,CAACG,QAAQ,EAAE,CAAC;EACxG,IAAIA,QAAQ,IAAI,IAAI,EAAE;IAClB,MAAMI,kBAAkB,GAAGT,SAAS,CAACU,MAAM,CAACL,QAAQ,IAAI,CAACA,QAAQ,CAACM,MAAM,KAChER,OAAO,GACLE,QAAQ,CAACO,MAAM,KAAK;IACtB;IAAA,EACE,CAACP,QAAQ,CAACO,MAAM,CAAC,CAAC;IAC5B,IAAIH,kBAAkB,CAACI,MAAM,KAAK,CAAC,EAAE;MACjC,MAAM,IAAIC,KAAK,CAAC,wDAAwD,CAAC;IAC7E;IACA,MAAMC,UAAU,GAAI,MAAMjB,OAAO,CAACkB,MAAM,CAACd,MAAM,CAACG,QAAQ,IAAI,IAAI,GAC1D,yBAAyBN,KAAK,CAACG,MAAM,CAACG,QAAQ,CAAC,wCAAwC,GACvF,qBAAqB,EAAE;MACzBY,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAET,kBAAkB,CAACU,GAAG,CAAEd,QAAQ,KAAM;QAC3Ce,KAAK,EAAEf,QAAQ,CAACG,EAAE;QAClBa,KAAK,EAAEhB,QAAQ,CAACgB;MACpB,CAAC,CAAC;MACF;MACA;IACJ,CAAC,CAAE;IACHhB,QAAQ,GAAGL,SAAS,CAACM,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,EAAE,KAAKO,UAAU,CAAC;IACrD,IAAIV,QAAQ,IAAI,IAAI,EAAE;MAClB,MAAM,IAAIS,KAAK,CAAC,YAAYC,UAAU,kBAAkB,CAAC;IAC7D;EACJ;EACA,OAAOV,QAAQ;AACnB","ignoreList":[]}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2023 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { afterEach, expect, test, vi } from "vitest";
|
|
17
|
+
import { consola } from "../consola.js";
|
|
18
|
+
import { TEMPLATES } from "../templates.js";
|
|
19
|
+
import { promptTemplate } from "./promptTemplate.js";
|
|
20
|
+
vi.mock("../consola.js");
|
|
21
|
+
afterEach(() => {
|
|
22
|
+
vi.restoreAllMocks();
|
|
23
|
+
});
|
|
24
|
+
test("it accepts valid template from prompt", async () => {
|
|
25
|
+
vi.mocked(consola).prompt.mockResolvedValueOnce(TEMPLATES[0].id);
|
|
26
|
+
expect(await promptTemplate({})).toEqual(TEMPLATES[0]);
|
|
27
|
+
expect(vi.mocked(consola).prompt).toHaveBeenCalledTimes(1);
|
|
28
|
+
});
|
|
29
|
+
test("it accepts valid initial template id value without prompt", async () => {
|
|
30
|
+
expect(await promptTemplate({
|
|
31
|
+
template: TEMPLATES[0].id
|
|
32
|
+
})).toEqual(TEMPLATES[0]);
|
|
33
|
+
expect(vi.mocked(consola).prompt).not.toHaveBeenCalled();
|
|
34
|
+
});
|
|
35
|
+
test("it accepts valid initial template id value without 'template-' prefix without prompt", async () => {
|
|
36
|
+
expect(await promptTemplate({
|
|
37
|
+
template: TEMPLATES[0].id.substring("template-".length)
|
|
38
|
+
})).toEqual(TEMPLATES[0]);
|
|
39
|
+
expect(vi.mocked(consola).prompt).not.toHaveBeenCalled();
|
|
40
|
+
});
|
|
41
|
+
test("it prompts if initial value is invalid", async () => {
|
|
42
|
+
vi.mocked(consola).prompt.mockResolvedValueOnce(TEMPLATES[0].id);
|
|
43
|
+
expect(await promptTemplate({
|
|
44
|
+
template: "missing"
|
|
45
|
+
})).toEqual(TEMPLATES[0]);
|
|
46
|
+
expect(vi.mocked(consola).prompt).toHaveBeenCalledTimes(1);
|
|
47
|
+
});
|
|
48
|
+
//# sourceMappingURL=promptTemplate.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promptTemplate.test.js","names":["afterEach","expect","test","vi","consola","TEMPLATES","promptTemplate","mock","restoreAllMocks","mocked","prompt","mockResolvedValueOnce","id","toEqual","toHaveBeenCalledTimes","template","not","toHaveBeenCalled","substring","length"],"sources":["promptTemplate.test.js"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { afterEach, expect, test, vi } from \"vitest\";\nimport { consola } from \"../consola.js\";\nimport { TEMPLATES } from \"../templates.js\";\nimport { promptTemplate } from \"./promptTemplate.js\";\nvi.mock(\"../consola.js\");\nafterEach(() => {\n vi.restoreAllMocks();\n});\ntest(\"it accepts valid template from prompt\", async () => {\n vi.mocked(consola).prompt.mockResolvedValueOnce(TEMPLATES[0].id);\n expect(await promptTemplate({})).toEqual(TEMPLATES[0]);\n expect(vi.mocked(consola).prompt).toHaveBeenCalledTimes(1);\n});\ntest(\"it accepts valid initial template id value without prompt\", async () => {\n expect(await promptTemplate({ template: TEMPLATES[0].id })).toEqual(TEMPLATES[0]);\n expect(vi.mocked(consola).prompt).not.toHaveBeenCalled();\n});\ntest(\"it accepts valid initial template id value without 'template-' prefix without prompt\", async () => {\n expect(await promptTemplate({\n template: TEMPLATES[0].id.substring(\"template-\".length),\n })).toEqual(TEMPLATES[0]);\n expect(vi.mocked(consola).prompt).not.toHaveBeenCalled();\n});\ntest(\"it prompts if initial value is invalid\", async () => {\n vi.mocked(consola).prompt.mockResolvedValueOnce(TEMPLATES[0].id);\n expect(await promptTemplate({ template: \"missing\" })).toEqual(TEMPLATES[0]);\n expect(vi.mocked(consola).prompt).toHaveBeenCalledTimes(1);\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,SAAS,EAAEC,MAAM,EAAEC,IAAI,EAAEC,EAAE,QAAQ,QAAQ;AACpD,SAASC,OAAO,QAAQ,eAAe;AACvC,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,cAAc,QAAQ,qBAAqB;AACpDH,EAAE,CAACI,IAAI,CAAC,eAAe,CAAC;AACxBP,SAAS,CAAC,MAAM;EACZG,EAAE,CAACK,eAAe,CAAC,CAAC;AACxB,CAAC,CAAC;AACFN,IAAI,CAAC,uCAAuC,EAAE,YAAY;EACtDC,EAAE,CAACM,MAAM,CAACL,OAAO,CAAC,CAACM,MAAM,CAACC,qBAAqB,CAACN,SAAS,CAAC,CAAC,CAAC,CAACO,EAAE,CAAC;EAChEX,MAAM,CAAC,MAAMK,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAACO,OAAO,CAACR,SAAS,CAAC,CAAC,CAAC,CAAC;EACtDJ,MAAM,CAACE,EAAE,CAACM,MAAM,CAACL,OAAO,CAAC,CAACM,MAAM,CAAC,CAACI,qBAAqB,CAAC,CAAC,CAAC;AAC9D,CAAC,CAAC;AACFZ,IAAI,CAAC,2DAA2D,EAAE,YAAY;EAC1ED,MAAM,CAAC,MAAMK,cAAc,CAAC;IAAES,QAAQ,EAAEV,SAAS,CAAC,CAAC,CAAC,CAACO;EAAG,CAAC,CAAC,CAAC,CAACC,OAAO,CAACR,SAAS,CAAC,CAAC,CAAC,CAAC;EACjFJ,MAAM,CAACE,EAAE,CAACM,MAAM,CAACL,OAAO,CAAC,CAACM,MAAM,CAAC,CAACM,GAAG,CAACC,gBAAgB,CAAC,CAAC;AAC5D,CAAC,CAAC;AACFf,IAAI,CAAC,sFAAsF,EAAE,YAAY;EACrGD,MAAM,CAAC,MAAMK,cAAc,CAAC;IACxBS,QAAQ,EAAEV,SAAS,CAAC,CAAC,CAAC,CAACO,EAAE,CAACM,SAAS,CAAC,WAAW,CAACC,MAAM;EAC1D,CAAC,CAAC,CAAC,CAACN,OAAO,CAACR,SAAS,CAAC,CAAC,CAAC,CAAC;EACzBJ,MAAM,CAACE,EAAE,CAACM,MAAM,CAACL,OAAO,CAAC,CAACM,MAAM,CAAC,CAACM,GAAG,CAACC,gBAAgB,CAAC,CAAC;AAC5D,CAAC,CAAC;AACFf,IAAI,CAAC,wCAAwC,EAAE,YAAY;EACvDC,EAAE,CAACM,MAAM,CAACL,OAAO,CAAC,CAACM,MAAM,CAACC,qBAAqB,CAACN,SAAS,CAAC,CAAC,CAAC,CAACO,EAAE,CAAC;EAChEX,MAAM,CAAC,MAAMK,cAAc,CAAC;IAAES,QAAQ,EAAE;EAAU,CAAC,CAAC,CAAC,CAACF,OAAO,CAACR,SAAS,CAAC,CAAC,CAAC,CAAC;EAC3EJ,MAAM,CAACE,EAAE,CAACM,MAAM,CAACL,OAAO,CAAC,CAACM,MAAM,CAAC,CAACI,qBAAqB,CAAC,CAAC,CAAC;AAC9D,CAAC,CAAC","ignoreList":[]}
|
package/build/esm/run.js
ADDED
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import Handlebars from "handlebars";
|
|
17
|
+
import fs from "node:fs";
|
|
18
|
+
import path from "node:path";
|
|
19
|
+
import { consola } from "./consola.js";
|
|
20
|
+
import { generateEnvDevelopment, generateEnvProduction } from "./generate/generateEnv.js";
|
|
21
|
+
import { generateFoundryConfigJson } from "./generate/generateFoundryConfigJson.js";
|
|
22
|
+
import { generateNpmRc } from "./generate/generateNpmRc.js";
|
|
23
|
+
import { green } from "./highlight.js";
|
|
24
|
+
export async function run({
|
|
25
|
+
project,
|
|
26
|
+
overwrite,
|
|
27
|
+
template,
|
|
28
|
+
foundryUrl,
|
|
29
|
+
applicationUrl,
|
|
30
|
+
application,
|
|
31
|
+
clientId,
|
|
32
|
+
osdkPackage,
|
|
33
|
+
osdkRegistryUrl,
|
|
34
|
+
corsProxy
|
|
35
|
+
}) {
|
|
36
|
+
consola.log("");
|
|
37
|
+
consola.start(`Creating project ${green(project)} using template ${green(template.id)}`);
|
|
38
|
+
const cwd = process.cwd();
|
|
39
|
+
const root = path.join(cwd, project);
|
|
40
|
+
if (fs.existsSync(root)) {
|
|
41
|
+
if (overwrite) {
|
|
42
|
+
consola.info(`Overwriting existing project directory`);
|
|
43
|
+
fs.rmSync(root, {
|
|
44
|
+
recursive: true,
|
|
45
|
+
force: true
|
|
46
|
+
});
|
|
47
|
+
fs.mkdirSync(root, {
|
|
48
|
+
recursive: true
|
|
49
|
+
});
|
|
50
|
+
} else {
|
|
51
|
+
consola.info(`Reusing existing project directory`);
|
|
52
|
+
}
|
|
53
|
+
} else {
|
|
54
|
+
consola.info(`Creating project directory`);
|
|
55
|
+
fs.mkdirSync(root, {
|
|
56
|
+
recursive: true
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
consola.info(`Copying files into project directory`);
|
|
60
|
+
const files = await template.getFiles();
|
|
61
|
+
for (const [filePath, contents] of files) {
|
|
62
|
+
const finalPath = path.join(root, filePath);
|
|
63
|
+
const dirPath = path.dirname(finalPath);
|
|
64
|
+
await fs.promises.mkdir(dirPath, {
|
|
65
|
+
recursive: true
|
|
66
|
+
});
|
|
67
|
+
await fs.promises.writeFile(finalPath, Buffer.from(contents.body, contents.type === "raw" ? "utf-8" : "base64"));
|
|
68
|
+
}
|
|
69
|
+
const templateContext = {
|
|
70
|
+
project,
|
|
71
|
+
foundryUrl,
|
|
72
|
+
osdkPackage,
|
|
73
|
+
corsProxy
|
|
74
|
+
};
|
|
75
|
+
const processFiles = function (dir) {
|
|
76
|
+
fs.readdirSync(dir).forEach(function (file) {
|
|
77
|
+
file = dir + "/" + file;
|
|
78
|
+
const stat = fs.statSync(file);
|
|
79
|
+
if (stat.isDirectory()) {
|
|
80
|
+
processFiles(file);
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
if (file.endsWith("/_gitignore")) {
|
|
84
|
+
fs.renameSync(file, file.replace(/\/_gitignore$/, "/.gitignore"));
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
if (!file.endsWith(".hbs")) {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
const templated = Handlebars.compile(fs.readFileSync(file, "utf-8"))(templateContext);
|
|
91
|
+
fs.writeFileSync(file.replace(/.hbs$/, ""), templated);
|
|
92
|
+
fs.rmSync(file);
|
|
93
|
+
});
|
|
94
|
+
};
|
|
95
|
+
processFiles(root);
|
|
96
|
+
const npmRc = generateNpmRc({
|
|
97
|
+
osdkPackage,
|
|
98
|
+
osdkRegistryUrl
|
|
99
|
+
});
|
|
100
|
+
fs.writeFileSync(path.join(root, ".npmrc"), npmRc);
|
|
101
|
+
const envDevelopment = generateEnvDevelopment({
|
|
102
|
+
envPrefix: template.envPrefix,
|
|
103
|
+
foundryUrl,
|
|
104
|
+
clientId,
|
|
105
|
+
corsProxy
|
|
106
|
+
});
|
|
107
|
+
fs.writeFileSync(path.join(root, ".env.development"), envDevelopment);
|
|
108
|
+
const envProduction = generateEnvProduction({
|
|
109
|
+
envPrefix: template.envPrefix,
|
|
110
|
+
foundryUrl,
|
|
111
|
+
applicationUrl,
|
|
112
|
+
clientId
|
|
113
|
+
});
|
|
114
|
+
fs.writeFileSync(path.join(root, ".env.production"), envProduction);
|
|
115
|
+
const foundryConfigJson = generateFoundryConfigJson({
|
|
116
|
+
foundryUrl,
|
|
117
|
+
application,
|
|
118
|
+
directory: template.buildDirectory
|
|
119
|
+
});
|
|
120
|
+
fs.writeFileSync(path.join(root, "foundry.config.json"), foundryConfigJson);
|
|
121
|
+
consola.success("Success");
|
|
122
|
+
const cdRelative = path.relative(cwd, root);
|
|
123
|
+
consola.box({
|
|
124
|
+
message: `Done! Run the following commands to get started:\n` + `\n` + ` \`cd ${cdRelative}\`\n` + ` \`export FOUNDRY_TOKEN=<token>\`\n` + ` \`npm install\`\n` + ` \`npm run dev\``,
|
|
125
|
+
style: {
|
|
126
|
+
padding: 2,
|
|
127
|
+
borderColor: "green",
|
|
128
|
+
borderStyle: "rounded"
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.js","names":["Handlebars","fs","path","consola","generateEnvDevelopment","generateEnvProduction","generateFoundryConfigJson","generateNpmRc","green","run","project","overwrite","template","foundryUrl","applicationUrl","application","clientId","osdkPackage","osdkRegistryUrl","corsProxy","log","start","id","cwd","process","root","join","existsSync","info","rmSync","recursive","force","mkdirSync","files","getFiles","filePath","contents","finalPath","dirPath","dirname","promises","mkdir","writeFile","Buffer","from","body","type","templateContext","processFiles","dir","readdirSync","forEach","file","stat","statSync","isDirectory","endsWith","renameSync","replace","templated","compile","readFileSync","writeFileSync","npmRc","envDevelopment","envPrefix","envProduction","foundryConfigJson","directory","buildDirectory","success","cdRelative","relative","box","message","style","padding","borderColor","borderStyle"],"sources":["run.js"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport Handlebars from \"handlebars\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { consola } from \"./consola.js\";\nimport { generateEnvDevelopment, generateEnvProduction, } from \"./generate/generateEnv.js\";\nimport { generateFoundryConfigJson } from \"./generate/generateFoundryConfigJson.js\";\nimport { generateNpmRc } from \"./generate/generateNpmRc.js\";\nimport { green } from \"./highlight.js\";\nexport async function run({ project, overwrite, template, foundryUrl, applicationUrl, application, clientId, osdkPackage, osdkRegistryUrl, corsProxy, }) {\n consola.log(\"\");\n consola.start(`Creating project ${green(project)} using template ${green(template.id)}`);\n const cwd = process.cwd();\n const root = path.join(cwd, project);\n if (fs.existsSync(root)) {\n if (overwrite) {\n consola.info(`Overwriting existing project directory`);\n fs.rmSync(root, { recursive: true, force: true });\n fs.mkdirSync(root, { recursive: true });\n }\n else {\n consola.info(`Reusing existing project directory`);\n }\n }\n else {\n consola.info(`Creating project directory`);\n fs.mkdirSync(root, { recursive: true });\n }\n consola.info(`Copying files into project directory`);\n const files = await template.getFiles();\n for (const [filePath, contents] of files) {\n const finalPath = path.join(root, filePath);\n const dirPath = path.dirname(finalPath);\n await fs.promises.mkdir(dirPath, { recursive: true });\n await fs.promises.writeFile(finalPath, Buffer.from(contents.body, contents.type === \"raw\" ? \"utf-8\" : \"base64\"));\n }\n const templateContext = {\n project,\n foundryUrl,\n osdkPackage,\n corsProxy,\n };\n const processFiles = function (dir) {\n fs.readdirSync(dir).forEach(function (file) {\n file = dir + \"/\" + file;\n const stat = fs.statSync(file);\n if (stat.isDirectory()) {\n processFiles(file);\n return;\n }\n if (file.endsWith(\"/_gitignore\")) {\n fs.renameSync(file, file.replace(/\\/_gitignore$/, \"/.gitignore\"));\n return;\n }\n if (!file.endsWith(\".hbs\")) {\n return;\n }\n const templated = Handlebars.compile(fs.readFileSync(file, \"utf-8\"))(templateContext);\n fs.writeFileSync(file.replace(/.hbs$/, \"\"), templated);\n fs.rmSync(file);\n });\n };\n processFiles(root);\n const npmRc = generateNpmRc({ osdkPackage, osdkRegistryUrl });\n fs.writeFileSync(path.join(root, \".npmrc\"), npmRc);\n const envDevelopment = generateEnvDevelopment({\n envPrefix: template.envPrefix,\n foundryUrl,\n clientId,\n corsProxy,\n });\n fs.writeFileSync(path.join(root, \".env.development\"), envDevelopment);\n const envProduction = generateEnvProduction({\n envPrefix: template.envPrefix,\n foundryUrl,\n applicationUrl,\n clientId,\n });\n fs.writeFileSync(path.join(root, \".env.production\"), envProduction);\n const foundryConfigJson = generateFoundryConfigJson({\n foundryUrl,\n application,\n directory: template.buildDirectory,\n });\n fs.writeFileSync(path.join(root, \"foundry.config.json\"), foundryConfigJson);\n consola.success(\"Success\");\n const cdRelative = path.relative(cwd, root);\n consola.box({\n message: `Done! Run the following commands to get started:\\n`\n + `\\n`\n + ` \\`cd ${cdRelative}\\`\\n`\n + ` \\`export FOUNDRY_TOKEN=<token>\\`\\n`\n + ` \\`npm install\\`\\n`\n + ` \\`npm run dev\\``,\n style: {\n padding: 2,\n borderColor: \"green\",\n borderStyle: \"rounded\",\n },\n });\n}\n"],"mappings":"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","ignoreList":[]}
|