@osdk/create-app 2.5.1 → 2.5.3

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.
Files changed (54) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/README.md +2 -1
  3. package/build/esm/esm-274SCWUC.js +491 -0
  4. package/build/esm/esm-274SCWUC.js.map +1 -0
  5. package/build/esm/{esm-BFU2C5I6.js → esm-BPDOE2XQ.js} +11 -5
  6. package/build/esm/esm-BPDOE2XQ.js.map +1 -0
  7. package/build/esm/{esm-CE2B34NS.js → esm-BZCH5TWU.js} +10 -4
  8. package/build/esm/esm-BZCH5TWU.js.map +1 -0
  9. package/build/esm/{esm-OAZKICK5.js → esm-HPTIRCUT.js} +12 -10
  10. package/build/esm/esm-HPTIRCUT.js.map +1 -0
  11. package/build/esm/{esm-IPIUMRUZ.js → esm-QTVEFJ72.js} +10 -4
  12. package/build/esm/esm-QTVEFJ72.js.map +1 -0
  13. package/build/esm/{esm-UYHS7HJF.js → esm-RL6PMHXG.js} +165 -27
  14. package/build/esm/esm-RL6PMHXG.js.map +1 -0
  15. package/build/esm/{esm-ZNWIB6WR.js → esm-SERFCO3E.js} +10 -4
  16. package/build/esm/esm-SERFCO3E.js.map +1 -0
  17. package/build/esm/{esm-N4SPMGQ5.js → esm-VF46BQ3A.js} +12 -10
  18. package/build/esm/esm-VF46BQ3A.js.map +1 -0
  19. package/build/esm/{esm-X2E7QWV3.js → esm-WYFBJLMT.js} +294 -97
  20. package/build/esm/esm-WYFBJLMT.js.map +1 -0
  21. package/build/esm/index.js +116 -64
  22. package/build/esm/index.js.map +1 -1
  23. package/build/types/cli.d.ts.map +1 -1
  24. package/build/types/generate/generateEnv.d.ts +2 -2
  25. package/build/types/generate/generateEnv.d.ts.map +1 -1
  26. package/build/types/prompts/promptOntologyAndOsdkPackageAndOsdkRegistryUrl.d.ts +12 -0
  27. package/build/types/prompts/promptOntologyAndOsdkPackageAndOsdkRegistryUrl.d.ts.map +1 -0
  28. package/build/types/prompts/promptOntologyAndOsdkPackageAndOsdkRegistryUrl.test.d.ts.map +1 -0
  29. package/build/types/run.d.ts +3 -3
  30. package/build/types/templates.d.ts +3 -1
  31. package/build/types/templates.d.ts.map +1 -1
  32. package/package.json +11 -11
  33. package/build/esm/esm-BFU2C5I6.js.map +0 -1
  34. package/build/esm/esm-CE2B34NS.js.map +0 -1
  35. package/build/esm/esm-IPIUMRUZ.js.map +0 -1
  36. package/build/esm/esm-N4SPMGQ5.js.map +0 -1
  37. package/build/esm/esm-OAZKICK5.js.map +0 -1
  38. package/build/esm/esm-UYHS7HJF.js.map +0 -1
  39. package/build/esm/esm-X2E7QWV3.js.map +0 -1
  40. package/build/esm/esm-YAHWUN5G.js +0 -281
  41. package/build/esm/esm-YAHWUN5G.js.map +0 -1
  42. package/build/esm/esm-ZNWIB6WR.js.map +0 -1
  43. package/build/types/prompts/promptOntologyRid.d.ts +0 -3
  44. package/build/types/prompts/promptOntologyRid.d.ts.map +0 -1
  45. package/build/types/prompts/promptOntologyRid.test.d.ts.map +0 -1
  46. package/build/types/prompts/promptOsdkPackage.d.ts +0 -3
  47. package/build/types/prompts/promptOsdkPackage.d.ts.map +0 -1
  48. package/build/types/prompts/promptOsdkPackage.test.d.ts +0 -1
  49. package/build/types/prompts/promptOsdkPackage.test.d.ts.map +0 -1
  50. package/build/types/prompts/promptOsdkRegistryUrl.d.ts +0 -3
  51. package/build/types/prompts/promptOsdkRegistryUrl.d.ts.map +0 -1
  52. package/build/types/prompts/promptOsdkRegistryUrl.test.d.ts +0 -1
  53. package/build/types/prompts/promptOsdkRegistryUrl.test.d.ts.map +0 -1
  54. /package/build/types/prompts/{promptOntologyRid.test.d.ts → promptOntologyAndOsdkPackageAndOsdkRegistryUrl.test.d.ts} +0 -0
@@ -127,10 +127,32 @@ ${italic("(Example: https://example.palantirfoundry.com)")}`, {
127
127
  return foundryUrl.replace(/\/$/, "");
128
128
  }
129
129
 
130
- // src/prompts/promptOntologyRid.ts
131
- async function promptOntologyRid({
132
- ontology
130
+ // src/prompts/promptOntologyAndOsdkPackageAndOsdkRegistryUrl.ts
131
+ async function promptOntologyAndOsdkPackageAndOsdkRegistryUrl({
132
+ ontology,
133
+ osdkPackage,
134
+ osdkRegistryUrl,
135
+ skipOsdk,
136
+ sdkVersion
133
137
  }) {
138
+ if (skipOsdk) {
139
+ return {};
140
+ }
141
+ if (sdkVersion !== "1.x" && osdkPackage == null && ontology == null && osdkRegistryUrl == null) {
142
+ const skip = await consola.prompt("Will you be using an OSDK in your application?", {
143
+ type: "select",
144
+ options: [{
145
+ label: "Yes, I will be using an OSDK",
146
+ value: "yes"
147
+ }, {
148
+ label: "No, I will only be using Platform APIs",
149
+ value: "no"
150
+ }]
151
+ });
152
+ if (skip === "no") {
153
+ return {};
154
+ }
155
+ }
134
156
  while (ontology == null || !/^ri\.ontology\.[^.]+\.ontology\.[^.]+$/.test(ontology)) {
135
157
  if (ontology != null) {
136
158
  consola.fail("Please enter a valid Ontology resource identifier (rid)");
@@ -140,13 +162,6 @@ ${italic("(Example: ri.ontology.main.ontology.1df1ce4c-f9d2-0f78-a316-287f6ac80b
140
162
  type: "text"
141
163
  });
142
164
  }
143
- return ontology;
144
- }
145
-
146
- // src/prompts/promptOsdkPackage.ts
147
- async function promptOsdkPackage({
148
- osdkPackage
149
- }) {
150
165
  while (osdkPackage == null || !/^@[a-z0-9-]+\/sdk$/.test(osdkPackage)) {
151
166
  if (osdkPackage != null) {
152
167
  consola.fail("Please enter a valid OSDK package name");
@@ -156,13 +171,6 @@ ${italic("(Example: @my-app/sdk)")}`, {
156
171
  type: "text"
157
172
  });
158
173
  }
159
- return osdkPackage;
160
- }
161
-
162
- // src/prompts/promptOsdkRegistryUrl.ts
163
- async function promptOsdkRegistryUrl({
164
- osdkRegistryUrl
165
- }) {
166
174
  while (osdkRegistryUrl == null || !/^https:\/\/[^/]+\/artifacts\/api\/repositories\/ri\.artifacts\.[^/]+\/contents\/release\/npm\/?$/.test(osdkRegistryUrl)) {
167
175
  if (osdkRegistryUrl != null) {
168
176
  consola.fail("Please enter a valid NPM registry URL to install your OSDK package");
@@ -172,7 +180,11 @@ ${italic("(Example: https://example.palantirfoundry.com/artifacts/api/repositori
172
180
  type: "text"
173
181
  });
174
182
  }
175
- return osdkRegistryUrl.replace(/\/$/, "");
183
+ return {
184
+ ontology,
185
+ osdkPackage,
186
+ osdkRegistryUrl: osdkRegistryUrl.replace(/\/$/, "")
187
+ };
176
188
  }
177
189
  async function promptOverwrite({
178
190
  project,
@@ -296,8 +308,8 @@ var TEMPLATES = [
296
308
  buildDirectory: "./dist",
297
309
  hidden: false,
298
310
  files: {
299
- "1.x": getPackageFiles(import('./esm-ZNWIB6WR.js')),
300
- "2.x": getPackageFiles(import('./esm-X2E7QWV3.js'))
311
+ "1.x": getPackageFiles(import('./esm-SERFCO3E.js')),
312
+ "2.x": getPackageFiles(import('./esm-WYFBJLMT.js'))
301
313
  }
302
314
  },
303
315
  // Expo
@@ -308,7 +320,7 @@ var TEMPLATES = [
308
320
  buildDirectory: "./dist",
309
321
  hidden: false,
310
322
  files: {
311
- "2.x": getPackageFiles(import('./esm-UYHS7HJF.js'))
323
+ "2.x": getPackageFiles(import('./esm-RL6PMHXG.js'))
312
324
  }
313
325
  },
314
326
  // Vue
@@ -319,8 +331,8 @@ var TEMPLATES = [
319
331
  buildDirectory: "./dist",
320
332
  hidden: false,
321
333
  files: {
322
- "1.x": getPackageFiles(import('./esm-BFU2C5I6.js')),
323
- "2.x": getPackageFiles(import('./esm-YAHWUN5G.js'))
334
+ "1.x": getPackageFiles(import('./esm-BPDOE2XQ.js')),
335
+ "2.x": getPackageFiles(import('./esm-274SCWUC.js'))
324
336
  }
325
337
  },
326
338
  // Tutorial: To do App
@@ -331,8 +343,8 @@ var TEMPLATES = [
331
343
  buildDirectory: "./dist",
332
344
  hidden: true,
333
345
  files: {
334
- "1.x": getPackageFiles(import('./esm-IPIUMRUZ.js')),
335
- "2.x": getPackageFiles(import('./esm-OAZKICK5.js'))
346
+ "1.x": getPackageFiles(import('./esm-QTVEFJ72.js')),
347
+ "2.x": getPackageFiles(import('./esm-HPTIRCUT.js'))
336
348
  }
337
349
  },
338
350
  // Tutorial: To do AIP App
@@ -343,8 +355,8 @@ var TEMPLATES = [
343
355
  buildDirectory: "./dist",
344
356
  hidden: true,
345
357
  files: {
346
- "1.x": getPackageFiles(import('./esm-CE2B34NS.js')),
347
- "2.x": getPackageFiles(import('./esm-N4SPMGQ5.js'))
358
+ "1.x": getPackageFiles(import('./esm-BZCH5TWU.js')),
359
+ "2.x": getPackageFiles(import('./esm-VF46BQ3A.js'))
348
360
  }
349
361
  }
350
362
  ];
@@ -402,6 +414,14 @@ function generateEnvDevelopment({
402
414
  }) {
403
415
  const foundryApiUrl = corsProxy ? "http://localhost:8080" : foundryUrl;
404
416
  const applicationUrl = "http://localhost:8080";
417
+ const ontologyEnvSection = ontology != null ? `
418
+
419
+ # This Ontology RID must match the Ontology RID your Developer Console is associated with.
420
+ # You can check the Ontology on the "Ontology SDK" tab of Developer Console.
421
+ # It typically does not need to be changed.
422
+
423
+ ${envPrefix}FOUNDRY_ONTOLOGY_RID=${ontology}
424
+ ` : "";
405
425
  return `# This env file is intended for developing on your local computer.
406
426
  # To set up development in Foundry's Code Workspaces, see .env.code-workspaces.
407
427
  # To deploy your application to production, see .env.production.
@@ -429,13 +449,7 @@ ${envPrefix}FOUNDRY_API_URL=${foundryApiUrl}
429
449
  # Developer Console. It typically does not need to be changed.
430
450
 
431
451
  ${envPrefix}FOUNDRY_CLIENT_ID=${clientId}
432
-
433
- # This Ontology RID must match the Ontology RID your Developer Console is associated with.
434
- # You can check the Ontology on the "Data Resources" page of Developer Console.
435
- # It typically does not need to be changed.
436
-
437
- ${envPrefix}FOUNDRY_ONTOLOGY_RID=${ontology}
438
- `;
452
+ ${ontologyEnvSection}`;
439
453
  }
440
454
  function generateEnvProduction({
441
455
  envPrefix,
@@ -445,6 +459,14 @@ function generateEnvProduction({
445
459
  ontology
446
460
  }) {
447
461
  const applicationUrlOrDefault = applicationUrl ?? "<Fill in the domain at which you deploy your application>";
462
+ const ontologyEnvSection = ontology != null ? `
463
+
464
+ # This Ontology RID must match the Ontology RID your Developer Console is associated with.
465
+ # You can check the Ontology on the "Ontology SDK" tab of Developer Console.
466
+ # It typically does not need to be changed.
467
+
468
+ ${envPrefix}FOUNDRY_ONTOLOGY_RID=${ontology}
469
+ ` : "";
448
470
  return `# This env file is intended for deploying your application to production.
449
471
  # To set up development on your local computer, see .env.development.
450
472
  # To set up development in Foundry's Code Workspaces, see .env.code-workspaces.
@@ -472,13 +494,7 @@ ${envPrefix}FOUNDRY_API_URL=${foundryUrl}
472
494
  # Developer Console. It typically does not need to be changed.
473
495
 
474
496
  ${envPrefix}FOUNDRY_CLIENT_ID=${clientId}
475
-
476
- # This Ontology RID must match the Ontology RID your Developer Console is associated with.
477
- # You can check the Ontology on the "Data Resources" page of Developer Console.
478
- # It typically does not need to be changed.
479
-
480
- ${envPrefix}FOUNDRY_ONTOLOGY_RID=${ontology}
481
- `;
497
+ ${ontologyEnvSection}`;
482
498
  }
483
499
 
484
500
  // src/generate/generateFoundryConfigJson.ts
@@ -569,8 +585,10 @@ async function run({
569
585
  cwd: fileURLToPath(import.meta.url)
570
586
  });
571
587
  ourPackageJsonPath ? JSON.parse(fs2.readFileSync(ourPackageJsonPath, "utf-8")).version : void 0;
572
- const clientVersion = "2.5.1";
588
+ const clientVersion = "2.5.3";
573
589
  const templateContext = {
590
+ application,
591
+ applicationUrl,
574
592
  project,
575
593
  foundryUrl,
576
594
  osdkPackage,
@@ -580,30 +598,49 @@ async function run({
580
598
  };
581
599
  const processFiles = function(dir) {
582
600
  fs2.readdirSync(dir).forEach(function(file) {
583
- file = dir + "/" + file;
584
- const stat = fs2.statSync(file);
601
+ let fullPath = dir + "/" + file;
602
+ const stat = fs2.statSync(fullPath);
585
603
  if (stat.isDirectory()) {
586
- processFiles(file);
604
+ processFiles(fullPath);
587
605
  return;
588
606
  }
589
- if (file.endsWith("/_gitignore")) {
590
- fs2.renameSync(file, file.replace(/\/_gitignore$/, "/.gitignore"));
607
+ if (fullPath.endsWith("/_gitignore")) {
608
+ fs2.renameSync(fullPath, fullPath.replace(/\/_gitignore$/, "/.gitignore"));
591
609
  return;
592
610
  }
593
- if (!file.endsWith(".hbs")) {
611
+ if (file.includes(".osdk")) {
612
+ if (osdkPackage == null) {
613
+ fs2.rmSync(fullPath);
614
+ return;
615
+ } else {
616
+ fs2.renameSync(fullPath, fullPath.replace(".osdk", ""));
617
+ fullPath = fullPath.replace(".osdk", "");
618
+ }
619
+ } else if (file.includes(".psdk")) {
620
+ if (osdkPackage == null) {
621
+ fs2.renameSync(fullPath, fullPath.replace(".psdk", ""));
622
+ fullPath = fullPath.replace(".psdk", "");
623
+ } else {
624
+ fs2.rmSync(fullPath);
625
+ return;
626
+ }
627
+ }
628
+ if (!fullPath.endsWith(".hbs")) {
594
629
  return;
595
630
  }
596
- const templated = Handlebars.compile(fs2.readFileSync(file, "utf-8"))(templateContext);
597
- fs2.writeFileSync(file.replace(/.hbs$/, ""), templated);
598
- fs2.rmSync(file);
631
+ const templated = Handlebars.compile(fs2.readFileSync(fullPath, "utf-8"))(templateContext);
632
+ fs2.writeFileSync(fullPath.replace(/.hbs$/, ""), templated);
633
+ fs2.rmSync(fullPath);
599
634
  });
600
635
  };
601
636
  processFiles(root);
602
- const npmRc = generateNpmRc({
603
- osdkPackage,
604
- osdkRegistryUrl
605
- });
606
- fs2.writeFileSync(path2.join(root, ".npmrc"), npmRc);
637
+ if (osdkPackage != null && osdkRegistryUrl != null) {
638
+ const npmRc = generateNpmRc({
639
+ osdkPackage,
640
+ osdkRegistryUrl
641
+ });
642
+ fs2.writeFileSync(path2.join(root, ".npmrc"), npmRc);
643
+ }
607
644
  const envDevelopment = generateEnvDevelopment({
608
645
  envPrefix: template.envPrefix,
609
646
  foundryUrl,
@@ -645,7 +682,7 @@ async function run({
645
682
 
646
683
  // src/cli.ts
647
684
  async function cli(args = process.argv) {
648
- const base = yargs(hideBin(args)).version("2.5.1").wrap(Math.min(150, yargs().terminalWidth())).strict().help().command("$0 [project] [--<option>]", "Create a new OSDK application based on framework templates. Information may be provided through options to skip interactive prompts.", (yargs2) => yargs2.positional("project", {
685
+ const base = yargs(hideBin(args)).version("2.5.3").wrap(Math.min(150, yargs().terminalWidth())).strict().help().command("$0 [project] [--<option>]", "Create a new OSDK application based on framework templates. Information may be provided through options to skip interactive prompts.", (yargs2) => yargs2.positional("project", {
649
686
  type: "string",
650
687
  describe: "Project name to create"
651
688
  }).option("overwrite", {
@@ -675,13 +712,18 @@ async function cli(args = process.argv) {
675
712
  describe: "Application resource identifier (rid)"
676
713
  }).option("ontology", {
677
714
  type: "string",
678
- describe: "Ontology resource identifier (rid)"
715
+ describe: "Ontology resource identifier (rid)",
716
+ conflicts: "skipOsdk"
717
+ }).option("osdkPackage", {
718
+ type: "string",
719
+ describe: "OSDK package name for application",
720
+ conflicts: "skipOsdk"
721
+ }).option("skipOsdk", {
722
+ type: "boolean",
723
+ describe: "Skip filling in OSDK options"
679
724
  }).option("clientId", {
680
725
  type: "string",
681
726
  describe: "OAuth client ID for application"
682
- }).option("osdkPackage", {
683
- type: "string",
684
- describe: "OSDK package name for application"
685
727
  }).option("osdkRegistryUrl", {
686
728
  type: "string",
687
729
  describe: "URL for NPM registry to install OSDK package"
@@ -692,6 +734,11 @@ async function cli(args = process.argv) {
692
734
  type: "string",
693
735
  array: true,
694
736
  describe: "List of client-side scopes to be used when creating a client"
737
+ }).check((argv) => {
738
+ if (argv.skipOsdk && (argv.sdkVersion == null || argv.sdkVersion.startsWith("1."))) {
739
+ throw new Error("The --skipOsdk flag is only allowed when sdkVersion is 2.x. Please set --sdkVersion to 2.x or remove the --skipOsdk flag.");
740
+ }
741
+ return true;
695
742
  }));
696
743
  const parsed = base.parseSync();
697
744
  const project = await promptProject(parsed);
@@ -707,10 +754,15 @@ async function cli(args = process.argv) {
707
754
  const foundryUrl = await promptFoundryUrl(parsed);
708
755
  const applicationUrl = await promptApplicationUrl(parsed);
709
756
  const application = await promptApplicationRid(parsed);
710
- const ontology = await promptOntologyRid(parsed);
711
757
  const clientId = await promptClientId(parsed);
712
- const osdkPackage = await promptOsdkPackage(parsed);
713
- const osdkRegistryUrl = await promptOsdkRegistryUrl(parsed);
758
+ const {
759
+ osdkPackage,
760
+ ontology,
761
+ osdkRegistryUrl
762
+ } = await promptOntologyAndOsdkPackageAndOsdkRegistryUrl({
763
+ ...parsed,
764
+ sdkVersion
765
+ });
714
766
  const corsProxy = await promptCorsProxy(parsed);
715
767
  const scopes = await promptScopes(parsed);
716
768
  await run({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/consola.ts","../../src/highlight.ts","../../src/prompts/promptApplicationRid.ts","../../src/prompts/promptApplicationUrl.ts","../../src/prompts/promptClientId.ts","../../src/prompts/promptCorsProxy.ts","../../src/prompts/promptFoundryUrl.ts","../../src/prompts/promptOntologyRid.ts","../../src/prompts/promptOsdkPackage.ts","../../src/prompts/promptOsdkRegistryUrl.ts","../../src/prompts/promptOverwrite.ts","../../src/prompts/promptProject.ts","../../src/prompts/promptScopes.ts","../../src/prompts/promptSdkVersion.ts","../../src/getPackageFiles.ts","../../src/generatedNoCheck/templates.ts","../../src/prompts/promptTemplate.ts","../../../generator-utils/build/esm/changeVersionPrefix.js","../../../../node_modules/.pnpm/tiny-invariant@1.3.3/node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../../src/generate/generateEnv.ts","../../src/generate/generateFoundryConfigJson.ts","../../src/generate/generateNpmRc.ts","../../src/run.ts","../../src/cli.ts"],"names":["defaultConsola","fs","path","sdkVersion","template","yargs"],"mappings":"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","file":"index.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 */\n\nimport { consola as defaultConsola, createConsola } from \"consola\";\n\n// https://github.com/unjs/consola?tab=readme-ov-file#await-promptmessage--type-cancel-\nconst cancelSymbol = Symbol.for(\"cancel\");\nexport const consola = createConsola({\n async prompt(message, opts) {\n const response = await defaultConsola.prompt(message, {\n ...opts,\n cancel: opts?.cancel ?? \"symbol\"\n });\n if (response === cancelSymbol) {\n defaultConsola.fail(\"Operation cancelled\");\n process.exit(0);\n }\n return response;\n }\n});","/*\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 */\n\nimport { colorize } from \"consola/utils\";\nexport function green(text) {\n return colorize(\"green\", text);\n}\nexport function italic(text) {\n return colorize(\"italic\", text);\n}","/*\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 */\n\nimport { consola } from \"../consola.js\";\nimport { italic } from \"../highlight.js\";\nexport async function promptApplicationRid({\n application\n}) {\n while (application == null || !/^ri\\.third-party-applications\\.[^.]+\\.application\\.[^.]+$/.test(application)) {\n if (application != null) {\n consola.fail(\"Please enter a valid application resource identifier (rid)\");\n }\n application = await consola.prompt(`Enter the application resource identifier (rid) for your application from Developer Console:\\n${italic(\"(Example: ri.third-party-applications.main.application.1c66b352-4e00-40d2-995d-061c9d533ace)\")}`, {\n type: \"text\"\n });\n }\n return application;\n}","/*\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 */\n\nimport { consola } from \"../consola.js\";\nimport { italic } from \"../highlight.js\";\nexport async function promptApplicationUrl({\n skipApplicationUrl,\n applicationUrl\n}) {\n if (skipApplicationUrl) {\n return undefined;\n }\n if (applicationUrl == null) {\n const skip = await consola.prompt(`Do you know the URL your production application will be hosted on? This is required to create a production build of your application with the correct OAuth redirect URL.`, {\n type: \"select\",\n options: [{\n label: \"Yes, let me fill it here\",\n value: \"yes\"\n }, {\n label: \"No, I will fill it in later following the instructions in the generated README\",\n value: \"no\"\n }]\n });\n if (skip === \"no\") {\n return undefined;\n }\n }\n while (applicationUrl == null || !/^https?:\\/\\//.test(applicationUrl)) {\n if (applicationUrl != null) {\n consola.fail(\"Please enter a valid application URL\");\n }\n applicationUrl = await consola.prompt(`Enter the URL your production application will be hosted on:\\n${italic(\"(Example: https://myapp.example.palantirfoundry.com)\")}`, {\n type: \"text\"\n });\n }\n return applicationUrl.replace(/\\/$/, \"\");\n}","/*\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 */\n\nimport { consola } from \"../consola.js\";\nimport { italic } from \"../highlight.js\";\nexport async function promptClientId({\n clientId\n}) {\n while (clientId == null || !/^[0-9a-f]+$/.test(clientId)) {\n if (clientId != null) {\n consola.fail(\"Please enter a valid OAuth client ID\");\n }\n clientId = await consola.prompt(`Enter the OAuth client ID for your application from Developer Console:\\n${italic(\"(Example: 2650385ab6c5e0df3b44aff776b00a42)\")}`, {\n type: \"text\"\n });\n }\n return clientId;\n}","/*\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 */\n\nimport { consola } from \"../consola.js\";\nimport { italic } from \"../highlight.js\";\nexport async function promptCorsProxy({\n corsProxy\n}) {\n if (corsProxy != null) {\n return corsProxy;\n }\n return consola.prompt(`Include a CORS proxy for Foundry API requests during local development?\\n${italic(\"This is required if your enrollment has not allowed localhost for CORS.\")}`, {\n type: \"confirm\",\n initial: false\n });\n}","/*\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 */\n\nimport { consola } from \"../consola.js\";\nimport { italic } from \"../highlight.js\";\nexport async function promptFoundryUrl({\n foundryUrl\n}) {\n while (foundryUrl == null || !foundryUrl.startsWith(\"https://\")) {\n if (foundryUrl != null) {\n consola.fail(\"Please enter a valid Foundry URL\");\n }\n foundryUrl = await consola.prompt(`Enter the URL for your Foundry stack:\\n${italic(\"(Example: https://example.palantirfoundry.com)\")}`, {\n type: \"text\"\n });\n }\n return foundryUrl.replace(/\\/$/, \"\");\n}","/*\n * Copyright 2025 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 */\n\nimport { consola } from \"../consola.js\";\nimport { italic } from \"../highlight.js\";\nexport async function promptOntologyRid({\n ontology\n}) {\n while (ontology == null || !/^ri\\.ontology\\.[^.]+\\.ontology\\.[^.]+$/.test(ontology)) {\n if (ontology != null) {\n consola.fail(\"Please enter a valid Ontology resource identifier (rid)\");\n }\n ontology = await consola.prompt(`Enter the Ontology resource identifier (rid) associated with your Developer Console:\\n${italic(\"(Example: ri.ontology.main.ontology.1df1ce4c-f9d2-0f78-a316-287f6ac80bb2)\")}`, {\n type: \"text\"\n });\n }\n return ontology;\n}","/*\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 */\n\nimport { consola } from \"../consola.js\";\nimport { italic } from \"../highlight.js\";\nexport async function promptOsdkPackage({\n osdkPackage\n}) {\n while (osdkPackage == null || !/^@[a-z0-9-]+\\/sdk$/.test(osdkPackage)) {\n if (osdkPackage != null) {\n consola.fail(\"Please enter a valid OSDK package name\");\n }\n osdkPackage = await consola.prompt(`Enter the OSDK package name for your application from Developer Console:\\n${italic(\"(Example: @my-app/sdk)\")}`, {\n type: \"text\"\n });\n }\n return osdkPackage;\n}","/*\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 */\n\nimport { consola } from \"../consola.js\";\nimport { italic } from \"../highlight.js\";\nexport async function promptOsdkRegistryUrl({\n osdkRegistryUrl\n}) {\n while (osdkRegistryUrl == null || !/^https:\\/\\/[^/]+\\/artifacts\\/api\\/repositories\\/ri\\.artifacts\\.[^/]+\\/contents\\/release\\/npm\\/?$/.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)\")}`, {\n type: \"text\"\n });\n }\n return osdkRegistryUrl.replace(/\\/$/, \"\");\n}","/*\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 */\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({\n project,\n overwrite\n}) {\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\",\n value: \"overwrite\"\n }, {\n label: \"Ignore files and continue\",\n value: \"ignore\"\n }, {\n label: \"Cancel\",\n 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 * 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 */\n\nimport { consola } from \"../consola.js\";\nexport async function promptProject({\n project\n}) {\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 * 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 */\n\nimport { consola } from \"../consola.js\";\nconst scopeNameRegex = /^[a-zA-Z-_:]+$/;\nexport async function promptScopes({\n scopes\n}) {\n while (true) {\n if (scopes != null) {\n const invalidScopes = scopes.filter(scope => !scopeNameRegex.test(scope));\n const allValidScopes = invalidScopes.length === 0;\n if (allValidScopes) {\n break;\n }\n const joinedInvalidScopes = invalidScopes.join(\", \");\n consola.fail(`Scopes [ ${joinedInvalidScopes} ] are invalid. Scope names can only contain letters, hyphens, underscores, and colons`);\n }\n const stringScopes = await consola.prompt(\"Enter the scopes to request during OAuth:\", {\n type: \"text\",\n placeholder: \"api:read-data api:write-data api:use-ontologies-read api:use-ontologies-write\",\n default: \"api:read-data api:write-data api:use-ontologies-read api:use-ontologies-write\"\n });\n scopes = stringScopes.split(\" \");\n }\n return deduplicateScopes(scopes);\n}\n\n// Preserving the originally specified scope order\nfunction deduplicateScopes(scopes) {\n const dedupedScopes = [];\n const seen = new Set();\n for (const scope of scopes) {\n if (seen.has(scope)) {\n continue;\n }\n dedupedScopes.push(scope);\n seen.add(scope);\n }\n return dedupedScopes;\n}","/*\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 */\n\nimport { consola } from \"../consola.js\";\nexport async function promptSdkVersion({\n sdkVersion,\n template\n}) {\n if (sdkVersion == null) {\n // If the SDK version is not provided, default to the earliest template version for backwards-compatibility\n return Object.keys(template.files)[0];\n }\n if (template.files[sdkVersion] == null) {\n consola.fail(`The ${template.label} template does not support a \"${sdkVersion}\" SDK version.`);\n sdkVersion = await consola.prompt(`Please choose which version of the OSDK you'd like to use for the ${template.label} template:`, {\n type: \"select\",\n options: Object.keys(template.files).reverse().map(sdkVersion => ({\n label: sdkVersion,\n value: sdkVersion\n }))\n });\n }\n return sdkVersion;\n}","/*\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 */\n\nexport const getPackageFiles = importPromise => async () => (await importPromise).files;","// THIS FILE IS GENERATED. DO NOT MODIFY.\n// You probably want to modify ../../../codegen.mjs instead.\n\nimport { getPackageFiles } from \"../getPackageFiles.js\";\nexport const TEMPLATES = [\n// React\n{\n id: \"template-react\",\n label: \"React\",\n envPrefix: \"VITE_\",\n buildDirectory: \"./dist\",\n hidden: false,\n files: {\n \"1.x\": getPackageFiles(import(\"@osdk/create-app.template.react\")),\n \"2.x\": getPackageFiles(import(\"@osdk/create-app.template.react.beta\"))\n }\n},\n// Expo\n{\n id: \"template-expo\",\n label: \"Expo\",\n envPrefix: \"EXPO_PUBLIC_\",\n buildDirectory: \"./dist\",\n hidden: false,\n files: {\n \"2.x\": getPackageFiles(import(\"@osdk/create-app.template.expo.v2\"))\n }\n},\n// Vue\n{\n id: \"template-vue\",\n label: \"Vue\",\n envPrefix: \"VITE_\",\n buildDirectory: \"./dist\",\n hidden: false,\n files: {\n \"1.x\": getPackageFiles(import(\"@osdk/create-app.template.vue\")),\n \"2.x\": getPackageFiles(import(\"@osdk/create-app.template.vue.v2\"))\n }\n},\n// Tutorial: To do App\n{\n id: \"template-tutorial-todo-app\",\n label: \"Tutorial: To do App\",\n envPrefix: \"VITE_\",\n buildDirectory: \"./dist\",\n hidden: true,\n files: {\n \"1.x\": getPackageFiles(import(\"@osdk/create-app.template.tutorial-todo-app\")),\n \"2.x\": getPackageFiles(import(\"@osdk/create-app.template.tutorial-todo-app.beta\"))\n }\n},\n// Tutorial: To do AIP App\n{\n id: \"template-tutorial-todo-aip-app\",\n label: \"Tutorial: To do AIP App\",\n envPrefix: \"VITE_\",\n buildDirectory: \"./dist\",\n hidden: true,\n files: {\n \"1.x\": getPackageFiles(import(\"@osdk/create-app.template.tutorial-todo-aip-app\")),\n \"2.x\": getPackageFiles(import(\"@osdk/create-app.template.tutorial-todo-aip-app.beta\"))\n }\n}];","/*\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 */\n\nimport { consola } from \"../consola.js\";\nimport { TEMPLATES } from \"../generatedNoCheck/templates.js\";\nimport { green } from \"../highlight.js\";\nexport async function promptTemplate(parsed) {\n const 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 = getAvailableTemplatesOrThrow(useBeta);\n const templateId = await consola.prompt(parsed.template != null ? `The provided template ${green(parsed.template)} is invalid please select a framework:` : \"Select a framework:\", {\n type: \"select\",\n options: availableTemplates.map(template => ({\n value: template.id,\n label: template.label\n }))\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\n/** Exported for testing only */\nexport function getAvailableTemplatesOrThrow(useBeta) {\n const availableTemplates = TEMPLATES.filter(template => !template.hidden && (useBeta ? 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 return availableTemplates;\n}","/*\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 */\n\nexport function changeVersionPrefix(version, prefix) {\n const isWorkspaceProtocol = version.startsWith(\"workspace:\");\n if (isWorkspaceProtocol) {\n version = version.slice(\"workspace:\".length);\n }\n if (version[0] === \"^\" || version[0] === \"~\" || version[0] === \"*\") {\n version = version.slice(1);\n }\n return `${isWorkspaceProtocol ? \"workspace:\" : \"\"}${prefix}${version}`;\n}","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\nexport { invariant as default };","/*\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 */\n\nexport function generateEnvDevelopment({\n envPrefix,\n foundryUrl,\n clientId,\n corsProxy,\n ontology\n}) {\n const foundryApiUrl = corsProxy ? \"http://localhost:8080\" : foundryUrl;\n const applicationUrl = \"http://localhost:8080\";\n return `# This env file is intended for developing on your local computer.\n# To set up development in Foundry's Code Workspaces, see .env.code-workspaces.\n# To deploy your application to production, see .env.production.\n# Note that .env.code-workspaces is only present for projects that were set up\n# using the \"Bootstrap in Foundry\" option in Developer Console.\n\n\n# This URL is the URL your users will be redirected back to after signing in.\n# This URL must exactly match one of the URLs listed in the \"OAuth & scopes\"\n# page of Developer Console.\n#\n# If your application in development is not hosted on port 8080, you will need\n# to change this URL here and in Developer Console.\n\n${envPrefix}FOUNDRY_REDIRECT_URL=${applicationUrl}/auth/callback\n\n\n# This URL is the Foundry host that your OSDK will use. It typically does not\n# need to be changed.\n\n${envPrefix}FOUNDRY_API_URL=${foundryApiUrl}\n\n\n# This client ID must match the client ID given on the \"OAuth & scopes\" page of\n# Developer Console. It typically does not need to be changed.\n\n${envPrefix}FOUNDRY_CLIENT_ID=${clientId}\n\n# This Ontology RID must match the Ontology RID your Developer Console is associated with.\n# You can check the Ontology on the \"Data Resources\" page of Developer Console. \n# It typically does not need to be changed.\n\n${envPrefix}FOUNDRY_ONTOLOGY_RID=${ontology}\n`;\n}\nexport function generateEnvProduction({\n envPrefix,\n foundryUrl,\n applicationUrl,\n clientId,\n ontology\n}) {\n const applicationUrlOrDefault = applicationUrl ?? \"<Fill in the domain at which you deploy your application>\";\n return `# This env file is intended for deploying your application to production.\n# To set up development on your local computer, see .env.development.\n# To set up development in Foundry's Code Workspaces, see .env.code-workspaces.\n# Note that .env.code-workspaces is only present for projects that were set up\n# using the \"Bootstrap in Foundry\" option in Developer Console.\n\n\n# This URL is the URL your users will be redirected back to after signing in.\n# This URL must exactly match one of the URLs listed in the \"OAuth & scopes\"\n# page of Developer Console.\n#\n# If you change where your application is hosted, you will need to change this\n# URL here and in Developer Console.\n\n${applicationUrl == null ? \"# \" : \"\"}${envPrefix}FOUNDRY_REDIRECT_URL=${applicationUrlOrDefault}/auth/callback\n\n\n# This URL is the Foundry host that your OSDK will use. It typically does not\n# need to be changed.\n\n${envPrefix}FOUNDRY_API_URL=${foundryUrl}\n\n\n# This client ID must match the client ID given on the \"OAuth & scopes\" page of\n# Developer Console. It typically does not need to be changed.\n\n${envPrefix}FOUNDRY_CLIENT_ID=${clientId}\n\n# This Ontology RID must match the Ontology RID your Developer Console is associated with.\n# You can check the Ontology on the \"Data Resources\" page of Developer Console. \n# It typically does not need to be changed.\n\n${envPrefix}FOUNDRY_ONTOLOGY_RID=${ontology}\n`;\n}","/*\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 */\n\nexport function generateFoundryConfigJson({\n foundryUrl,\n application,\n directory\n}) {\n return JSON.stringify({\n foundryUrl,\n site: {\n application,\n directory,\n autoVersion: {\n type: \"git-describe\",\n tagPrefix: \"\"\n }\n }\n }, null, 2) + \"\\n\";\n}","/*\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 */\n\nexport function generateNpmRc({\n osdkPackage,\n osdkRegistryUrl\n}) {\n // pnpm requires a trailing slash in .npmrc\n // https://github.com/pnpm/pnpm/issues/5941\n const withTrailingSlash = osdkRegistryUrl.endsWith(\"/\") ? osdkRegistryUrl : osdkRegistryUrl + \"/\";\n const withoutProtocol = withTrailingSlash.replace(/^https:\\/\\//, \"\");\n const packageScope = osdkPackage.split(\"/\")[0];\n return `//${withoutProtocol}:_authToken=\\${FOUNDRY_TOKEN}\\n` + `${packageScope}:registry=${withTrailingSlash}\\n`;\n}","/*\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 */\n\nimport { changeVersionPrefix } from \"@osdk/generator-utils\";\nimport { findUpSync } from \"find-up\";\nimport Handlebars from \"handlebars\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\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({\n project,\n overwrite,\n template,\n sdkVersion,\n foundryUrl,\n applicationUrl,\n application,\n ontology,\n clientId,\n osdkPackage,\n osdkRegistryUrl,\n corsProxy,\n scopes\n}) {\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, {\n recursive: true,\n force: true\n });\n fs.mkdirSync(root, {\n recursive: true\n });\n } else {\n consola.info(`Reusing existing project directory`);\n }\n } else {\n consola.info(`Creating project directory`);\n fs.mkdirSync(root, {\n recursive: true\n });\n }\n consola.info(`Copying files into project directory`);\n if (template.files[sdkVersion] == null) {\n throw new Error(`The ${template.label} template does not support a \"${sdkVersion}\" SDK version.`);\n }\n const files = await template.files[sdkVersion]();\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, {\n recursive: true\n });\n await fs.promises.writeFile(finalPath, Buffer.from(contents.body, contents.type === \"raw\" ? \"utf-8\" : \"base64\"));\n }\n const ourPackageJsonPath = findUpSync(\"package.json\", {\n cwd: fileURLToPath(import.meta.url)\n });\n const ourPackageJsonVersion = ourPackageJsonPath ? JSON.parse(fs.readFileSync(ourPackageJsonPath, \"utf-8\")).version : undefined;\n const clientVersion = process.env.PACKAGE_CLIENT_VERSION ?? ourPackageJsonVersion;\n if (clientVersion === undefined) {\n throw new Error(\"Could not determine current @osdk/client version\");\n }\n const templateContext = {\n project,\n foundryUrl,\n osdkPackage,\n corsProxy,\n clientVersion: changeVersionPrefix(clientVersion, \"^\"),\n scopes\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({\n osdkPackage,\n osdkRegistryUrl\n });\n fs.writeFileSync(path.join(root, \".npmrc\"), npmRc);\n const envDevelopment = generateEnvDevelopment({\n envPrefix: template.envPrefix,\n foundryUrl,\n clientId,\n corsProxy,\n ontology\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 ontology\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` + ` \\`cd ${cdRelative}\\`\\n` + ` \\`export FOUNDRY_TOKEN=<token>\\`\\n` + ` \\`npm install\\`\\n` + ` \\`npm run dev\\``,\n style: {\n padding: 2,\n borderColor: \"green\",\n borderStyle: \"rounded\"\n }\n });\n}","/*\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 */\n\nimport yargs from \"yargs\";\nimport { hideBin } from \"yargs/helpers\";\nimport { promptApplicationRid } from \"./prompts/promptApplicationRid.js\";\nimport { promptApplicationUrl } from \"./prompts/promptApplicationUrl.js\";\nimport { promptClientId } from \"./prompts/promptClientId.js\";\nimport { promptCorsProxy } from \"./prompts/promptCorsProxy.js\";\nimport { promptFoundryUrl } from \"./prompts/promptFoundryUrl.js\";\nimport { promptOntologyRid } from \"./prompts/promptOntologyRid.js\";\nimport { promptOsdkPackage } from \"./prompts/promptOsdkPackage.js\";\nimport { promptOsdkRegistryUrl } from \"./prompts/promptOsdkRegistryUrl.js\";\nimport { promptOverwrite } from \"./prompts/promptOverwrite.js\";\nimport { promptProject } from \"./prompts/promptProject.js\";\nimport { promptScopes } from \"./prompts/promptScopes.js\";\nimport { promptSdkVersion } from \"./prompts/promptSdkVersion.js\";\nimport { promptTemplate } from \"./prompts/promptTemplate.js\";\nimport { run } from \"./run.js\";\nexport async function cli(args = process.argv) {\n const base = yargs(hideBin(args)).version(process.env.PACKAGE_VERSION ?? \"\").wrap(Math.min(150, yargs().terminalWidth())).strict().help().command(\"$0 [project] [--<option>]\", \"Create a new OSDK application based on framework templates. Information may be provided through options to skip interactive prompts.\", yargs => yargs.positional(\"project\", {\n type: \"string\",\n describe: \"Project name to create\"\n }).option(\"overwrite\", {\n type: \"boolean\",\n describe: \"Overwrite project directory if already exists\"\n }).option(\"beta\", {\n type: \"boolean\",\n describe: \"Use templates compatible with the Beta version of the SDK\"\n }).option(\"template\", {\n type: \"string\",\n describe: \"Template name to use\"\n }).option(\"sdkVersion\", {\n type: \"string\",\n describe: \"The OSDK version to use\"\n }).option(\"foundryUrl\", {\n type: \"string\",\n describe: \"URL for the Foundry stack\"\n }).option(\"applicationUrl\", {\n type: \"string\",\n describe: \"URL the production application will be hosted on\",\n conflicts: \"skipApplicationUrl\"\n }).option(\"skipApplicationUrl\", {\n type: \"boolean\",\n describe: \"Skip filling in URL the production application will be hosted on\"\n }).option(\"application\", {\n type: \"string\",\n describe: \"Application resource identifier (rid)\"\n }).option(\"ontology\", {\n type: \"string\",\n describe: \"Ontology resource identifier (rid)\"\n }).option(\"clientId\", {\n type: \"string\",\n describe: \"OAuth client ID for application\"\n }).option(\"osdkPackage\", {\n type: \"string\",\n describe: \"OSDK package name for application\"\n }).option(\"osdkRegistryUrl\", {\n type: \"string\",\n describe: \"URL for NPM registry to install OSDK package\"\n }).option(\"corsProxy\", {\n type: \"boolean\",\n describe: \"Include a CORS proxy for Foundry API requests during local development\"\n }).option(\"scopes\", {\n type: \"string\",\n array: true,\n describe: \"List of client-side scopes to be used when creating a client\"\n }));\n const parsed = base.parseSync();\n const project = await promptProject(parsed);\n const overwrite = await promptOverwrite({\n ...parsed,\n project\n });\n const template = await promptTemplate(parsed);\n const sdkVersion = await promptSdkVersion({\n ...parsed,\n template\n });\n const foundryUrl = await promptFoundryUrl(parsed);\n const applicationUrl = await promptApplicationUrl(parsed);\n const application = await promptApplicationRid(parsed);\n const ontology = await promptOntologyRid(parsed);\n const clientId = await promptClientId(parsed);\n const osdkPackage = await promptOsdkPackage(parsed);\n const osdkRegistryUrl = await promptOsdkRegistryUrl(parsed);\n const corsProxy = await promptCorsProxy(parsed);\n const scopes = await promptScopes(parsed);\n await run({\n project,\n overwrite,\n template,\n sdkVersion,\n foundryUrl,\n applicationUrl,\n application,\n clientId,\n osdkPackage,\n osdkRegistryUrl,\n corsProxy,\n scopes,\n ontology\n });\n}"]}
1
+ {"version":3,"sources":["../../src/consola.ts","../../src/highlight.ts","../../src/prompts/promptApplicationRid.ts","../../src/prompts/promptApplicationUrl.ts","../../src/prompts/promptClientId.ts","../../src/prompts/promptCorsProxy.ts","../../src/prompts/promptFoundryUrl.ts","../../src/prompts/promptOntologyAndOsdkPackageAndOsdkRegistryUrl.ts","../../src/prompts/promptOverwrite.ts","../../src/prompts/promptProject.ts","../../src/prompts/promptScopes.ts","../../src/prompts/promptSdkVersion.ts","../../src/getPackageFiles.ts","../../src/generatedNoCheck/templates.ts","../../src/prompts/promptTemplate.ts","../../../generator-utils/build/esm/changeVersionPrefix.js","../../../../node_modules/.pnpm/tiny-invariant@1.3.3/node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../../src/generate/generateEnv.ts","../../src/generate/generateFoundryConfigJson.ts","../../src/generate/generateNpmRc.ts","../../src/run.ts","../../src/cli.ts"],"names":["defaultConsola","fs","path","sdkVersion","template","yargs"],"mappings":"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","file":"index.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 */\n\nimport { consola as defaultConsola, createConsola } from \"consola\";\n\n// https://github.com/unjs/consola?tab=readme-ov-file#await-promptmessage--type-cancel-\nconst cancelSymbol = Symbol.for(\"cancel\");\nexport const consola = createConsola({\n async prompt(message, opts) {\n const response = await defaultConsola.prompt(message, {\n ...opts,\n cancel: opts?.cancel ?? \"symbol\"\n });\n if (response === cancelSymbol) {\n defaultConsola.fail(\"Operation cancelled\");\n process.exit(0);\n }\n return response;\n }\n});","/*\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 */\n\nimport { colorize } from \"consola/utils\";\nexport function green(text) {\n return colorize(\"green\", text);\n}\nexport function italic(text) {\n return colorize(\"italic\", text);\n}","/*\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 */\n\nimport { consola } from \"../consola.js\";\nimport { italic } from \"../highlight.js\";\nexport async function promptApplicationRid({\n application\n}) {\n while (application == null || !/^ri\\.third-party-applications\\.[^.]+\\.application\\.[^.]+$/.test(application)) {\n if (application != null) {\n consola.fail(\"Please enter a valid application resource identifier (rid)\");\n }\n application = await consola.prompt(`Enter the application resource identifier (rid) for your application from Developer Console:\\n${italic(\"(Example: ri.third-party-applications.main.application.1c66b352-4e00-40d2-995d-061c9d533ace)\")}`, {\n type: \"text\"\n });\n }\n return application;\n}","/*\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 */\n\nimport { consola } from \"../consola.js\";\nimport { italic } from \"../highlight.js\";\nexport async function promptApplicationUrl({\n skipApplicationUrl,\n applicationUrl\n}) {\n if (skipApplicationUrl) {\n return undefined;\n }\n if (applicationUrl == null) {\n const skip = await consola.prompt(`Do you know the URL your production application will be hosted on? This is required to create a production build of your application with the correct OAuth redirect URL.`, {\n type: \"select\",\n options: [{\n label: \"Yes, let me fill it here\",\n value: \"yes\"\n }, {\n label: \"No, I will fill it in later following the instructions in the generated README\",\n value: \"no\"\n }]\n });\n if (skip === \"no\") {\n return undefined;\n }\n }\n while (applicationUrl == null || !/^https?:\\/\\//.test(applicationUrl)) {\n if (applicationUrl != null) {\n consola.fail(\"Please enter a valid application URL\");\n }\n applicationUrl = await consola.prompt(`Enter the URL your production application will be hosted on:\\n${italic(\"(Example: https://myapp.example.palantirfoundry.com)\")}`, {\n type: \"text\"\n });\n }\n return applicationUrl.replace(/\\/$/, \"\");\n}","/*\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 */\n\nimport { consola } from \"../consola.js\";\nimport { italic } from \"../highlight.js\";\nexport async function promptClientId({\n clientId\n}) {\n while (clientId == null || !/^[0-9a-f]+$/.test(clientId)) {\n if (clientId != null) {\n consola.fail(\"Please enter a valid OAuth client ID\");\n }\n clientId = await consola.prompt(`Enter the OAuth client ID for your application from Developer Console:\\n${italic(\"(Example: 2650385ab6c5e0df3b44aff776b00a42)\")}`, {\n type: \"text\"\n });\n }\n return clientId;\n}","/*\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 */\n\nimport { consola } from \"../consola.js\";\nimport { italic } from \"../highlight.js\";\nexport async function promptCorsProxy({\n corsProxy\n}) {\n if (corsProxy != null) {\n return corsProxy;\n }\n return consola.prompt(`Include a CORS proxy for Foundry API requests during local development?\\n${italic(\"This is required if your enrollment has not allowed localhost for CORS.\")}`, {\n type: \"confirm\",\n initial: false\n });\n}","/*\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 */\n\nimport { consola } from \"../consola.js\";\nimport { italic } from \"../highlight.js\";\nexport async function promptFoundryUrl({\n foundryUrl\n}) {\n while (foundryUrl == null || !foundryUrl.startsWith(\"https://\")) {\n if (foundryUrl != null) {\n consola.fail(\"Please enter a valid Foundry URL\");\n }\n foundryUrl = await consola.prompt(`Enter the URL for your Foundry stack:\\n${italic(\"(Example: https://example.palantirfoundry.com)\")}`, {\n type: \"text\"\n });\n }\n return foundryUrl.replace(/\\/$/, \"\");\n}","/*\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 */\n\nimport { consola } from \"../consola.js\";\nimport { italic } from \"../highlight.js\";\nexport async function promptOntologyAndOsdkPackageAndOsdkRegistryUrl({\n ontology,\n osdkPackage,\n osdkRegistryUrl,\n skipOsdk,\n sdkVersion\n}) {\n if (skipOsdk) {\n return {};\n }\n if (sdkVersion !== \"1.x\" && osdkPackage == null && ontology == null && osdkRegistryUrl == null) {\n const skip = await consola.prompt(\"Will you be using an OSDK in your application?\", {\n type: \"select\",\n options: [{\n label: \"Yes, I will be using an OSDK\",\n value: \"yes\"\n }, {\n label: \"No, I will only be using Platform APIs\",\n value: \"no\"\n }]\n });\n if (skip === \"no\") {\n return {};\n }\n }\n while (ontology == null || !/^ri\\.ontology\\.[^.]+\\.ontology\\.[^.]+$/.test(ontology)) {\n if (ontology != null) {\n consola.fail(\"Please enter a valid Ontology resource identifier (rid)\");\n }\n ontology = await consola.prompt(`Enter the Ontology resource identifier (rid) associated with your Developer Console:\\n${italic(\"(Example: ri.ontology.main.ontology.1df1ce4c-f9d2-0f78-a316-287f6ac80bb2)\")}`, {\n type: \"text\"\n });\n }\n while (osdkPackage == null || !/^@[a-z0-9-]+\\/sdk$/.test(osdkPackage)) {\n if (osdkPackage != null) {\n consola.fail(\"Please enter a valid OSDK package name\");\n }\n osdkPackage = await consola.prompt(`Enter the OSDK package name for your application from Developer Console:\\n${italic(\"(Example: @my-app/sdk)\")}`, {\n type: \"text\"\n });\n }\n while (osdkRegistryUrl == null || !/^https:\\/\\/[^/]+\\/artifacts\\/api\\/repositories\\/ri\\.artifacts\\.[^/]+\\/contents\\/release\\/npm\\/?$/.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)\")}`, {\n type: \"text\"\n });\n }\n return {\n ontology,\n osdkPackage,\n osdkRegistryUrl: osdkRegistryUrl.replace(/\\/$/, \"\")\n };\n}","/*\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 */\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({\n project,\n overwrite\n}) {\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\",\n value: \"overwrite\"\n }, {\n label: \"Ignore files and continue\",\n value: \"ignore\"\n }, {\n label: \"Cancel\",\n 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 * 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 */\n\nimport { consola } from \"../consola.js\";\nexport async function promptProject({\n project\n}) {\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 * 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 */\n\nimport { consola } from \"../consola.js\";\nconst scopeNameRegex = /^[a-zA-Z-_:]+$/;\nexport async function promptScopes({\n scopes\n}) {\n while (true) {\n if (scopes != null) {\n const invalidScopes = scopes.filter(scope => !scopeNameRegex.test(scope));\n const allValidScopes = invalidScopes.length === 0;\n if (allValidScopes) {\n break;\n }\n const joinedInvalidScopes = invalidScopes.join(\", \");\n consola.fail(`Scopes [ ${joinedInvalidScopes} ] are invalid. Scope names can only contain letters, hyphens, underscores, and colons`);\n }\n const stringScopes = await consola.prompt(\"Enter the scopes to request during OAuth:\", {\n type: \"text\",\n placeholder: \"api:read-data api:write-data api:use-ontologies-read api:use-ontologies-write\",\n default: \"api:read-data api:write-data api:use-ontologies-read api:use-ontologies-write\"\n });\n scopes = stringScopes.split(\" \");\n }\n return deduplicateScopes(scopes);\n}\n\n// Preserving the originally specified scope order\nfunction deduplicateScopes(scopes) {\n const dedupedScopes = [];\n const seen = new Set();\n for (const scope of scopes) {\n if (seen.has(scope)) {\n continue;\n }\n dedupedScopes.push(scope);\n seen.add(scope);\n }\n return dedupedScopes;\n}","/*\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 */\n\nimport { consola } from \"../consola.js\";\nexport async function promptSdkVersion({\n sdkVersion,\n template\n}) {\n if (sdkVersion == null) {\n // If the SDK version is not provided, default to the earliest template version for backwards-compatibility\n return Object.keys(template.files)[0];\n }\n if (template.files[sdkVersion] == null) {\n consola.fail(`The ${template.label} template does not support a \"${sdkVersion}\" SDK version.`);\n sdkVersion = await consola.prompt(`Please choose which version of the OSDK you'd like to use for the ${template.label} template:`, {\n type: \"select\",\n options: Object.keys(template.files).reverse().map(sdkVersion => ({\n label: sdkVersion,\n value: sdkVersion\n }))\n });\n }\n return sdkVersion;\n}","/*\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 */\n\nexport const getPackageFiles = importPromise => async () => (await importPromise).files;","// THIS FILE IS GENERATED. DO NOT MODIFY.\n// You probably want to modify ../../../codegen.mjs instead.\n\nimport { getPackageFiles } from \"../getPackageFiles.js\";\nexport const TEMPLATES = [\n// React\n{\n id: \"template-react\",\n label: \"React\",\n envPrefix: \"VITE_\",\n buildDirectory: \"./dist\",\n hidden: false,\n files: {\n \"1.x\": getPackageFiles(import(\"@osdk/create-app.template.react\")),\n \"2.x\": getPackageFiles(import(\"@osdk/create-app.template.react.beta\"))\n }\n},\n// Expo\n{\n id: \"template-expo\",\n label: \"Expo\",\n envPrefix: \"EXPO_PUBLIC_\",\n buildDirectory: \"./dist\",\n hidden: false,\n files: {\n \"2.x\": getPackageFiles(import(\"@osdk/create-app.template.expo.v2\"))\n }\n},\n// Vue\n{\n id: \"template-vue\",\n label: \"Vue\",\n envPrefix: \"VITE_\",\n buildDirectory: \"./dist\",\n hidden: false,\n files: {\n \"1.x\": getPackageFiles(import(\"@osdk/create-app.template.vue\")),\n \"2.x\": getPackageFiles(import(\"@osdk/create-app.template.vue.v2\"))\n }\n},\n// Tutorial: To do App\n{\n id: \"template-tutorial-todo-app\",\n label: \"Tutorial: To do App\",\n envPrefix: \"VITE_\",\n buildDirectory: \"./dist\",\n hidden: true,\n files: {\n \"1.x\": getPackageFiles(import(\"@osdk/create-app.template.tutorial-todo-app\")),\n \"2.x\": getPackageFiles(import(\"@osdk/create-app.template.tutorial-todo-app.beta\"))\n }\n},\n// Tutorial: To do AIP App\n{\n id: \"template-tutorial-todo-aip-app\",\n label: \"Tutorial: To do AIP App\",\n envPrefix: \"VITE_\",\n buildDirectory: \"./dist\",\n hidden: true,\n files: {\n \"1.x\": getPackageFiles(import(\"@osdk/create-app.template.tutorial-todo-aip-app\")),\n \"2.x\": getPackageFiles(import(\"@osdk/create-app.template.tutorial-todo-aip-app.beta\"))\n }\n}];","/*\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 */\n\nimport { consola } from \"../consola.js\";\nimport { TEMPLATES } from \"../generatedNoCheck/templates.js\";\nimport { green } from \"../highlight.js\";\nexport async function promptTemplate(parsed) {\n const 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 = getAvailableTemplatesOrThrow(useBeta);\n const templateId = await consola.prompt(parsed.template != null ? `The provided template ${green(parsed.template)} is invalid please select a framework:` : \"Select a framework:\", {\n type: \"select\",\n options: availableTemplates.map(template => ({\n value: template.id,\n label: template.label\n }))\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\n/** Exported for testing only */\nexport function getAvailableTemplatesOrThrow(useBeta) {\n const availableTemplates = TEMPLATES.filter(template => !template.hidden && (useBeta ? 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 return availableTemplates;\n}","/*\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 */\n\nexport function changeVersionPrefix(version, prefix) {\n const isWorkspaceProtocol = version.startsWith(\"workspace:\");\n if (isWorkspaceProtocol) {\n version = version.slice(\"workspace:\".length);\n }\n if (version[0] === \"^\" || version[0] === \"~\" || version[0] === \"*\") {\n version = version.slice(1);\n }\n return `${isWorkspaceProtocol ? \"workspace:\" : \"\"}${prefix}${version}`;\n}","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\nexport { invariant as default };","/*\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 */\n\nexport function generateEnvDevelopment({\n envPrefix,\n foundryUrl,\n clientId,\n corsProxy,\n ontology\n}) {\n const foundryApiUrl = corsProxy ? \"http://localhost:8080\" : foundryUrl;\n const applicationUrl = \"http://localhost:8080\";\n const ontologyEnvSection = ontology != null ? `\n\n# This Ontology RID must match the Ontology RID your Developer Console is associated with.\n# You can check the Ontology on the \"Ontology SDK\" tab of Developer Console.\n# It typically does not need to be changed.\n\n${envPrefix}FOUNDRY_ONTOLOGY_RID=${ontology}\n` : \"\";\n return `# This env file is intended for developing on your local computer.\n# To set up development in Foundry's Code Workspaces, see .env.code-workspaces.\n# To deploy your application to production, see .env.production.\n# Note that .env.code-workspaces is only present for projects that were set up\n# using the \"Bootstrap in Foundry\" option in Developer Console.\n\n\n# This URL is the URL your users will be redirected back to after signing in.\n# This URL must exactly match one of the URLs listed in the \"OAuth & scopes\"\n# page of Developer Console.\n#\n# If your application in development is not hosted on port 8080, you will need\n# to change this URL here and in Developer Console.\n\n${envPrefix}FOUNDRY_REDIRECT_URL=${applicationUrl}/auth/callback\n\n\n# This URL is the Foundry host that your OSDK will use. It typically does not\n# need to be changed.\n\n${envPrefix}FOUNDRY_API_URL=${foundryApiUrl}\n\n\n# This client ID must match the client ID given on the \"OAuth & scopes\" page of\n# Developer Console. It typically does not need to be changed.\n\n${envPrefix}FOUNDRY_CLIENT_ID=${clientId}\n${ontologyEnvSection}`;\n}\nexport function generateEnvProduction({\n envPrefix,\n foundryUrl,\n applicationUrl,\n clientId,\n ontology\n}) {\n const applicationUrlOrDefault = applicationUrl ?? \"<Fill in the domain at which you deploy your application>\";\n const ontologyEnvSection = ontology != null ? `\n\n# This Ontology RID must match the Ontology RID your Developer Console is associated with.\n# You can check the Ontology on the \"Ontology SDK\" tab of Developer Console.\n# It typically does not need to be changed.\n\n${envPrefix}FOUNDRY_ONTOLOGY_RID=${ontology}\n` : \"\";\n return `# This env file is intended for deploying your application to production.\n# To set up development on your local computer, see .env.development.\n# To set up development in Foundry's Code Workspaces, see .env.code-workspaces.\n# Note that .env.code-workspaces is only present for projects that were set up\n# using the \"Bootstrap in Foundry\" option in Developer Console.\n\n\n# This URL is the URL your users will be redirected back to after signing in.\n# This URL must exactly match one of the URLs listed in the \"OAuth & scopes\"\n# page of Developer Console.\n#\n# If you change where your application is hosted, you will need to change this\n# URL here and in Developer Console.\n\n${applicationUrl == null ? \"# \" : \"\"}${envPrefix}FOUNDRY_REDIRECT_URL=${applicationUrlOrDefault}/auth/callback\n\n\n# This URL is the Foundry host that your OSDK will use. It typically does not\n# need to be changed.\n\n${envPrefix}FOUNDRY_API_URL=${foundryUrl}\n\n\n# This client ID must match the client ID given on the \"OAuth & scopes\" page of\n# Developer Console. It typically does not need to be changed.\n\n${envPrefix}FOUNDRY_CLIENT_ID=${clientId}\n${ontologyEnvSection}`;\n}","/*\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 */\n\nexport function generateFoundryConfigJson({\n foundryUrl,\n application,\n directory\n}) {\n return JSON.stringify({\n foundryUrl,\n site: {\n application,\n directory,\n autoVersion: {\n type: \"git-describe\",\n tagPrefix: \"\"\n }\n }\n }, null, 2) + \"\\n\";\n}","/*\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 */\n\nexport function generateNpmRc({\n osdkPackage,\n osdkRegistryUrl\n}) {\n // pnpm requires a trailing slash in .npmrc\n // https://github.com/pnpm/pnpm/issues/5941\n const withTrailingSlash = osdkRegistryUrl.endsWith(\"/\") ? osdkRegistryUrl : osdkRegistryUrl + \"/\";\n const withoutProtocol = withTrailingSlash.replace(/^https:\\/\\//, \"\");\n const packageScope = osdkPackage.split(\"/\")[0];\n return `//${withoutProtocol}:_authToken=\\${FOUNDRY_TOKEN}\\n` + `${packageScope}:registry=${withTrailingSlash}\\n`;\n}","/*\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 */\n\nimport { changeVersionPrefix } from \"@osdk/generator-utils\";\nimport { findUpSync } from \"find-up\";\nimport Handlebars from \"handlebars\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\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({\n project,\n overwrite,\n template,\n sdkVersion,\n foundryUrl,\n applicationUrl,\n application,\n ontology,\n clientId,\n osdkPackage,\n osdkRegistryUrl,\n corsProxy,\n scopes\n}) {\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, {\n recursive: true,\n force: true\n });\n fs.mkdirSync(root, {\n recursive: true\n });\n } else {\n consola.info(`Reusing existing project directory`);\n }\n } else {\n consola.info(`Creating project directory`);\n fs.mkdirSync(root, {\n recursive: true\n });\n }\n consola.info(`Copying files into project directory`);\n if (template.files[sdkVersion] == null) {\n throw new Error(`The ${template.label} template does not support a \"${sdkVersion}\" SDK version.`);\n }\n const files = await template.files[sdkVersion]();\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, {\n recursive: true\n });\n await fs.promises.writeFile(finalPath, Buffer.from(contents.body, contents.type === \"raw\" ? \"utf-8\" : \"base64\"));\n }\n const ourPackageJsonPath = findUpSync(\"package.json\", {\n cwd: fileURLToPath(import.meta.url)\n });\n const ourPackageJsonVersion = ourPackageJsonPath ? JSON.parse(fs.readFileSync(ourPackageJsonPath, \"utf-8\")).version : undefined;\n const clientVersion = process.env.PACKAGE_CLIENT_VERSION ?? ourPackageJsonVersion;\n if (clientVersion === undefined) {\n throw new Error(\"Could not determine current @osdk/client version\");\n }\n const templateContext = {\n application,\n applicationUrl,\n project,\n foundryUrl,\n osdkPackage,\n corsProxy,\n clientVersion: changeVersionPrefix(clientVersion, \"^\"),\n scopes\n };\n const processFiles = function (dir) {\n fs.readdirSync(dir).forEach(function (file) {\n let fullPath = dir + \"/\" + file;\n const stat = fs.statSync(fullPath);\n if (stat.isDirectory()) {\n processFiles(fullPath);\n return;\n }\n if (fullPath.endsWith(\"/_gitignore\")) {\n fs.renameSync(fullPath, fullPath.replace(/\\/_gitignore$/, \"/.gitignore\"));\n return;\n }\n\n // Files with the `.osdk` extension are only kept if the application uses an OSDK\n if (file.includes(\".osdk\")) {\n if (osdkPackage == null) {\n fs.rmSync(fullPath);\n return;\n } else {\n fs.renameSync(fullPath, fullPath.replace(\".osdk\", \"\"));\n fullPath = fullPath.replace(\".osdk\", \"\");\n }\n // Files with the `.psdk` extension are only kept if the application does not use an OSDK\n } else if (file.includes(\".psdk\")) {\n if (osdkPackage == null) {\n fs.renameSync(fullPath, fullPath.replace(\".psdk\", \"\"));\n fullPath = fullPath.replace(\".psdk\", \"\");\n } else {\n fs.rmSync(fullPath);\n return;\n }\n }\n if (!fullPath.endsWith(\".hbs\")) {\n return;\n }\n const templated = Handlebars.compile(fs.readFileSync(fullPath, \"utf-8\"))(templateContext);\n fs.writeFileSync(fullPath.replace(/.hbs$/, \"\"), templated);\n fs.rmSync(fullPath);\n });\n };\n processFiles(root);\n if (osdkPackage != null && osdkRegistryUrl != null) {\n const npmRc = generateNpmRc({\n osdkPackage,\n osdkRegistryUrl\n });\n fs.writeFileSync(path.join(root, \".npmrc\"), npmRc);\n }\n const envDevelopment = generateEnvDevelopment({\n envPrefix: template.envPrefix,\n foundryUrl,\n clientId,\n corsProxy,\n ontology\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 ontology\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` + ` \\`cd ${cdRelative}\\`\\n` + ` \\`export FOUNDRY_TOKEN=<token>\\`\\n` + ` \\`npm install\\`\\n` + ` \\`npm run dev\\``,\n style: {\n padding: 2,\n borderColor: \"green\",\n borderStyle: \"rounded\"\n }\n });\n}","/*\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 */\n\nimport yargs from \"yargs\";\nimport { hideBin } from \"yargs/helpers\";\nimport { promptApplicationRid } from \"./prompts/promptApplicationRid.js\";\nimport { promptApplicationUrl } from \"./prompts/promptApplicationUrl.js\";\nimport { promptClientId } from \"./prompts/promptClientId.js\";\nimport { promptCorsProxy } from \"./prompts/promptCorsProxy.js\";\nimport { promptFoundryUrl } from \"./prompts/promptFoundryUrl.js\";\nimport { promptOntologyAndOsdkPackageAndOsdkRegistryUrl } from \"./prompts/promptOntologyAndOsdkPackageAndOsdkRegistryUrl.js\";\nimport { promptOverwrite } from \"./prompts/promptOverwrite.js\";\nimport { promptProject } from \"./prompts/promptProject.js\";\nimport { promptScopes } from \"./prompts/promptScopes.js\";\nimport { promptSdkVersion } from \"./prompts/promptSdkVersion.js\";\nimport { promptTemplate } from \"./prompts/promptTemplate.js\";\nimport { run } from \"./run.js\";\nexport async function cli(args = process.argv) {\n const base = yargs(hideBin(args)).version(process.env.PACKAGE_VERSION ?? \"\").wrap(Math.min(150, yargs().terminalWidth())).strict().help().command(\"$0 [project] [--<option>]\", \"Create a new OSDK application based on framework templates. Information may be provided through options to skip interactive prompts.\", yargs => yargs.positional(\"project\", {\n type: \"string\",\n describe: \"Project name to create\"\n }).option(\"overwrite\", {\n type: \"boolean\",\n describe: \"Overwrite project directory if already exists\"\n }).option(\"beta\", {\n type: \"boolean\",\n describe: \"Use templates compatible with the Beta version of the SDK\"\n }).option(\"template\", {\n type: \"string\",\n describe: \"Template name to use\"\n }).option(\"sdkVersion\", {\n type: \"string\",\n describe: \"The OSDK version to use\"\n }).option(\"foundryUrl\", {\n type: \"string\",\n describe: \"URL for the Foundry stack\"\n }).option(\"applicationUrl\", {\n type: \"string\",\n describe: \"URL the production application will be hosted on\",\n conflicts: \"skipApplicationUrl\"\n }).option(\"skipApplicationUrl\", {\n type: \"boolean\",\n describe: \"Skip filling in URL the production application will be hosted on\"\n }).option(\"application\", {\n type: \"string\",\n describe: \"Application resource identifier (rid)\"\n }).option(\"ontology\", {\n type: \"string\",\n describe: \"Ontology resource identifier (rid)\",\n conflicts: \"skipOsdk\"\n }).option(\"osdkPackage\", {\n type: \"string\",\n describe: \"OSDK package name for application\",\n conflicts: \"skipOsdk\"\n }).option(\"skipOsdk\", {\n type: \"boolean\",\n describe: \"Skip filling in OSDK options\"\n }).option(\"clientId\", {\n type: \"string\",\n describe: \"OAuth client ID for application\"\n }).option(\"osdkRegistryUrl\", {\n type: \"string\",\n describe: \"URL for NPM registry to install OSDK package\"\n }).option(\"corsProxy\", {\n type: \"boolean\",\n describe: \"Include a CORS proxy for Foundry API requests during local development\"\n }).option(\"scopes\", {\n type: \"string\",\n array: true,\n describe: \"List of client-side scopes to be used when creating a client\"\n }).check(argv => {\n if (argv.skipOsdk && (argv.sdkVersion == null || argv.sdkVersion.startsWith(\"1.\"))) {\n throw new Error(\"The --skipOsdk flag is only allowed when sdkVersion is 2.x. Please set --sdkVersion to 2.x or remove the --skipOsdk flag.\");\n }\n return true;\n }));\n const parsed = base.parseSync();\n const project = await promptProject(parsed);\n const overwrite = await promptOverwrite({\n ...parsed,\n project\n });\n const template = await promptTemplate(parsed);\n const sdkVersion = await promptSdkVersion({\n ...parsed,\n template\n });\n const foundryUrl = await promptFoundryUrl(parsed);\n const applicationUrl = await promptApplicationUrl(parsed);\n const application = await promptApplicationRid(parsed);\n const clientId = await promptClientId(parsed);\n const {\n osdkPackage,\n ontology,\n osdkRegistryUrl\n } = await promptOntologyAndOsdkPackageAndOsdkRegistryUrl({\n ...parsed,\n sdkVersion\n });\n const corsProxy = await promptCorsProxy(parsed);\n const scopes = await promptScopes(parsed);\n await run({\n project,\n overwrite,\n template,\n sdkVersion,\n foundryUrl,\n applicationUrl,\n application,\n clientId,\n osdkPackage,\n osdkRegistryUrl,\n corsProxy,\n scopes,\n ontology\n });\n}"]}
@@ -1 +1 @@
1
- {"mappings":"AAsDA,OAAO,iBAAe,IAAIA,kBAAgC","names":["args: string[]"],"sources":["../../src/cli.ts"],"version":3,"file":"cli.d.ts"}
1
+ {"mappings":"AAoDA,OAAO,iBAAe,IAAIA,kBAAgC","names":["args: string[]"],"sources":["../../src/cli.ts"],"version":3,"file":"cli.d.ts"}