@osdk/create-app 2.2.0-beta.13 → 2.2.0-beta.15

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 (40) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +2 -0
  3. package/build/esm/{esm-ZDXEJSSK.js → esm-66SHCQWI.js} +23 -18
  4. package/build/esm/esm-66SHCQWI.js.map +1 -0
  5. package/build/esm/{esm-WOD3ZASU.js → esm-6VRXVMVI.js} +31 -28
  6. package/build/esm/esm-6VRXVMVI.js.map +1 -0
  7. package/build/esm/{esm-UFOWZVCI.js → esm-CH4LA4ZP.js} +31 -28
  8. package/build/esm/esm-CH4LA4ZP.js.map +1 -0
  9. package/build/esm/{esm-2XGHW3GB.js → esm-CYRD2YT2.js} +31 -28
  10. package/build/esm/esm-CYRD2YT2.js.map +1 -0
  11. package/build/esm/{esm-WASWYTH3.js → esm-FVSOHRIA.js} +23 -18
  12. package/build/esm/esm-FVSOHRIA.js.map +1 -0
  13. package/build/esm/{esm-DH4TNZAR.js → esm-GFPEXBES.js} +23 -18
  14. package/build/esm/esm-GFPEXBES.js.map +1 -0
  15. package/build/esm/{esm-RGO5QUHZ.js → esm-GQHRADM4.js} +23 -18
  16. package/build/esm/esm-GQHRADM4.js.map +1 -0
  17. package/build/esm/{esm-UKBKJFHO.js → esm-K6DQEK4E.js} +30 -27
  18. package/build/esm/esm-K6DQEK4E.js.map +1 -0
  19. package/build/esm/{esm-QQOOQQVR.js → esm-QKX2FKZF.js} +5 -5
  20. package/build/esm/{esm-QQOOQQVR.js.map → esm-QKX2FKZF.js.map} +1 -1
  21. package/build/esm/index.js +54 -16
  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 +4 -2
  25. package/build/types/generate/generateEnv.d.ts.map +1 -1
  26. package/build/types/prompts/promptOntologyRid.d.ts +3 -0
  27. package/build/types/prompts/promptOntologyRid.d.ts.map +1 -0
  28. package/build/types/prompts/promptOntologyRid.test.d.ts +1 -0
  29. package/build/types/prompts/promptOntologyRid.test.d.ts.map +1 -0
  30. package/build/types/run.d.ts +2 -1
  31. package/build/types/run.d.ts.map +1 -1
  32. package/package.json +11 -11
  33. package/build/esm/esm-2XGHW3GB.js.map +0 -1
  34. package/build/esm/esm-DH4TNZAR.js.map +0 -1
  35. package/build/esm/esm-RGO5QUHZ.js.map +0 -1
  36. package/build/esm/esm-UFOWZVCI.js.map +0 -1
  37. package/build/esm/esm-UKBKJFHO.js.map +0 -1
  38. package/build/esm/esm-WASWYTH3.js.map +0 -1
  39. package/build/esm/esm-WOD3ZASU.js.map +0 -1
  40. package/build/esm/esm-ZDXEJSSK.js.map +0 -1
@@ -127,6 +127,22 @@ ${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
133
+ }) {
134
+ while (ontology == null || !/^ri\.ontology\.[^.]+\.ontology\.[^.]+$/.test(ontology)) {
135
+ if (ontology != null) {
136
+ consola.fail("Please enter a valid Ontology resource identifier (rid)");
137
+ }
138
+ ontology = await consola.prompt(`Enter the Ontology resource identifier (rid) associated with your Developer Console:
139
+ ${italic("(Example: ri.ontology.main.ontology.1df1ce4c-f9d2-0f78-a316-287f6ac80bb2)")}`, {
140
+ type: "text"
141
+ });
142
+ }
143
+ return ontology;
144
+ }
145
+
130
146
  // src/prompts/promptOsdkPackage.ts
131
147
  async function promptOsdkPackage({
132
148
  osdkPackage
@@ -280,8 +296,8 @@ var TEMPLATES = [
280
296
  buildDirectory: "./dist",
281
297
  hidden: false,
282
298
  files: {
283
- "1.x": getPackageFiles(import('./esm-ZDXEJSSK.js')),
284
- "2.x": getPackageFiles(import('./esm-2XGHW3GB.js'))
299
+ "1.x": getPackageFiles(import('./esm-66SHCQWI.js')),
300
+ "2.x": getPackageFiles(import('./esm-CYRD2YT2.js'))
285
301
  }
286
302
  },
287
303
  // Expo
@@ -292,7 +308,7 @@ var TEMPLATES = [
292
308
  buildDirectory: "./dist",
293
309
  hidden: false,
294
310
  files: {
295
- "2.x": getPackageFiles(import('./esm-QQOOQQVR.js'))
311
+ "2.x": getPackageFiles(import('./esm-QKX2FKZF.js'))
296
312
  }
297
313
  },
298
314
  // Vue
@@ -303,8 +319,8 @@ var TEMPLATES = [
303
319
  buildDirectory: "./dist",
304
320
  hidden: false,
305
321
  files: {
306
- "1.x": getPackageFiles(import('./esm-RGO5QUHZ.js')),
307
- "2.x": getPackageFiles(import('./esm-UKBKJFHO.js'))
322
+ "1.x": getPackageFiles(import('./esm-GQHRADM4.js')),
323
+ "2.x": getPackageFiles(import('./esm-K6DQEK4E.js'))
308
324
  }
309
325
  },
310
326
  // Tutorial: To do App
@@ -315,8 +331,8 @@ var TEMPLATES = [
315
331
  buildDirectory: "./dist",
316
332
  hidden: true,
317
333
  files: {
318
- "1.x": getPackageFiles(import('./esm-WASWYTH3.js')),
319
- "2.x": getPackageFiles(import('./esm-UFOWZVCI.js'))
334
+ "1.x": getPackageFiles(import('./esm-FVSOHRIA.js')),
335
+ "2.x": getPackageFiles(import('./esm-CH4LA4ZP.js'))
320
336
  }
321
337
  },
322
338
  // Tutorial: To do AIP App
@@ -327,8 +343,8 @@ var TEMPLATES = [
327
343
  buildDirectory: "./dist",
328
344
  hidden: true,
329
345
  files: {
330
- "1.x": getPackageFiles(import('./esm-DH4TNZAR.js')),
331
- "2.x": getPackageFiles(import('./esm-WOD3ZASU.js'))
346
+ "1.x": getPackageFiles(import('./esm-GFPEXBES.js')),
347
+ "2.x": getPackageFiles(import('./esm-6VRXVMVI.js'))
332
348
  }
333
349
  }
334
350
  ];
@@ -381,7 +397,8 @@ function generateEnvDevelopment({
381
397
  envPrefix,
382
398
  foundryUrl,
383
399
  clientId,
384
- corsProxy
400
+ corsProxy,
401
+ ontology
385
402
  }) {
386
403
  const foundryApiUrl = corsProxy ? "http://localhost:8080" : foundryUrl;
387
404
  const applicationUrl = "http://localhost:8080";
@@ -412,13 +429,20 @@ ${envPrefix}FOUNDRY_API_URL=${foundryApiUrl}
412
429
  # Developer Console. It typically does not need to be changed.
413
430
 
414
431
  ${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}
415
438
  `;
416
439
  }
417
440
  function generateEnvProduction({
418
441
  envPrefix,
419
442
  foundryUrl,
420
443
  applicationUrl,
421
- clientId
444
+ clientId,
445
+ ontology
422
446
  }) {
423
447
  const applicationUrlOrDefault = applicationUrl ?? "<Fill in the domain at which you deploy your application>";
424
448
  return `# This env file is intended for deploying your application to production.
@@ -448,6 +472,12 @@ ${envPrefix}FOUNDRY_API_URL=${foundryUrl}
448
472
  # Developer Console. It typically does not need to be changed.
449
473
 
450
474
  ${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}
451
481
  `;
452
482
  }
453
483
 
@@ -492,6 +522,7 @@ async function run({
492
522
  foundryUrl,
493
523
  applicationUrl,
494
524
  application,
525
+ ontology,
495
526
  clientId,
496
527
  osdkPackage,
497
528
  osdkRegistryUrl,
@@ -538,7 +569,7 @@ async function run({
538
569
  cwd: fileURLToPath(import.meta.url)
539
570
  });
540
571
  ourPackageJsonPath ? JSON.parse(fs2.readFileSync(ourPackageJsonPath, "utf-8")).version : undefined;
541
- const clientVersion = "2.2.0-beta.13";
572
+ const clientVersion = "2.2.0-beta.15";
542
573
  const templateContext = {
543
574
  project,
544
575
  foundryUrl,
@@ -577,14 +608,16 @@ async function run({
577
608
  envPrefix: template.envPrefix,
578
609
  foundryUrl,
579
610
  clientId,
580
- corsProxy
611
+ corsProxy,
612
+ ontology
581
613
  });
582
614
  fs2.writeFileSync(path2.join(root, ".env.development"), envDevelopment);
583
615
  const envProduction = generateEnvProduction({
584
616
  envPrefix: template.envPrefix,
585
617
  foundryUrl,
586
618
  applicationUrl,
587
- clientId
619
+ clientId,
620
+ ontology
588
621
  });
589
622
  fs2.writeFileSync(path2.join(root, ".env.production"), envProduction);
590
623
  const foundryConfigJson = generateFoundryConfigJson({
@@ -612,7 +645,7 @@ async function run({
612
645
 
613
646
  // src/cli.ts
614
647
  async function cli(args = process.argv) {
615
- const base = yargs(hideBin(args)).version("2.2.0-beta.13").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", {
648
+ const base = yargs(hideBin(args)).version("2.2.0-beta.15").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", {
616
649
  type: "string",
617
650
  describe: "Project name to create"
618
651
  }).option("overwrite", {
@@ -640,6 +673,9 @@ async function cli(args = process.argv) {
640
673
  }).option("application", {
641
674
  type: "string",
642
675
  describe: "Application resource identifier (rid)"
676
+ }).option("ontology", {
677
+ type: "string",
678
+ describe: "Ontology resource identifier (rid)"
643
679
  }).option("clientId", {
644
680
  type: "string",
645
681
  describe: "OAuth client ID for application"
@@ -671,6 +707,7 @@ async function cli(args = process.argv) {
671
707
  const foundryUrl = await promptFoundryUrl(parsed);
672
708
  const applicationUrl = await promptApplicationUrl(parsed);
673
709
  const application = await promptApplicationRid(parsed);
710
+ const ontology = await promptOntologyRid(parsed);
674
711
  const clientId = await promptClientId(parsed);
675
712
  const osdkPackage = await promptOsdkPackage(parsed);
676
713
  const osdkRegistryUrl = await promptOsdkRegistryUrl(parsed);
@@ -688,7 +725,8 @@ async function cli(args = process.argv) {
688
725
  osdkPackage,
689
726
  osdkRegistryUrl,
690
727
  corsProxy,
691
- scopes
728
+ scopes,
729
+ ontology
692
730
  });
693
731
  }
694
732
 
@@ -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/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 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\",\n default: \"api:read-data api:write-data\"\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}) {\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}\nexport function generateEnvProduction({\n envPrefix,\n foundryUrl,\n applicationUrl,\n clientId\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}","/*\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 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 });\n fs.writeFileSync(path.join(root, \".env.development\"), envDevelopment);\n const envProduction = generateEnvProduction({\n envPrefix: template.envPrefix,\n foundryUrl,\n applicationUrl,\n clientId\n });\n fs.writeFileSync(path.join(root, \".env.production\"), envProduction);\n const foundryConfigJson = generateFoundryConfigJson({\n foundryUrl,\n application,\n directory: template.buildDirectory\n });\n fs.writeFileSync(path.join(root, \"foundry.config.json\"), foundryConfigJson);\n consola.success(\"Success\");\n const cdRelative = path.relative(cwd, root);\n consola.box({\n message: `Done! Run the following commands to get started:\\n` + `\\n` + ` \\`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 { 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(\"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 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 });\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/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\",\n default: \"api:read-data api:write-data\"\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 +1 @@
1
- {"mappings":"AAoDA,OAAO,iBAAe,IAAIA,kBAAgC","names":["args: string[]"],"sources":["../../src/cli.ts"],"version":3,"file":"cli.d.ts"}
1
+ {"mappings":"AAsDA,OAAO,iBAAe,IAAIA,kBAAgC","names":["args: string[]"],"sources":["../../src/cli.ts"],"version":3,"file":"cli.d.ts"}
@@ -1,12 +1,14 @@
1
- export declare function generateEnvDevelopment({ envPrefix, foundryUrl, clientId, corsProxy }: {
1
+ export declare function generateEnvDevelopment({ envPrefix, foundryUrl, clientId, corsProxy, ontology }: {
2
2
  envPrefix: string
3
3
  foundryUrl: string
4
4
  clientId: string
5
5
  corsProxy: boolean
6
+ ontology: string
6
7
  }): string;
7
- export declare function generateEnvProduction({ envPrefix, foundryUrl, applicationUrl, clientId }: {
8
+ export declare function generateEnvProduction({ envPrefix, foundryUrl, applicationUrl, clientId, ontology }: {
8
9
  envPrefix: string
9
10
  foundryUrl: string
10
11
  applicationUrl: string | undefined
11
12
  clientId: string
13
+ ontology: string
12
14
  }): string;
@@ -1 +1 @@
1
- {"mappings":"AAgBA,OAAO,iBAAS,uBAAuB,EACrC,WACA,YACA,UACA,WAMD,EALE;CACD;CACA;CACA;CACA;AACD;AAiCD,OAAO,iBAAS,sBAAsB,EACpC,WACA,YACA,gBACA,UAMD,EALE;CACD;CACA;CACA;CACA;AACD","names":[],"sources":["../../../src/generate/generateEnv.ts"],"version":3,"file":"generateEnv.d.ts"}
1
+ {"mappings":"AAgBA,OAAO,iBAAS,uBAAuB,EACrC,WACA,YACA,UACA,WACA,UAOD,EANE;CACD;CACA;CACA;CACA;CACA;AACD;AAuCD,OAAO,iBAAS,sBAAsB,EACpC,WACA,YACA,gBACA,UACA,UAOD,EANE;CACD;CACA;CACA;CACA;CACA;AACD","names":[],"sources":["../../../src/generate/generateEnv.ts"],"version":3,"file":"generateEnv.d.ts"}
@@ -0,0 +1,3 @@
1
+ export declare function promptOntologyRid({ ontology }: {
2
+ ontology?: string
3
+ }): Promise<string>;
@@ -0,0 +1 @@
1
+ {"mappings":"AAmBA,OAAO,iBAAe,kBAAkB,EACtC,UAGD,EAFE;CACD;AACD,IAAG","names":[],"sources":["../../../src/prompts/promptOntologyRid.ts"],"version":3,"file":"promptOntologyRid.d.ts"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ {"mappings":"","names":[],"sources":["../../../src/prompts/promptOntologyRid.test.ts"],"version":3,"file":"promptOntologyRid.test.d.ts"}
@@ -7,11 +7,12 @@ interface RunArgs {
7
7
  foundryUrl: string;
8
8
  applicationUrl: string | undefined;
9
9
  application: string;
10
+ ontology: string;
10
11
  clientId: string;
11
12
  osdkPackage: string;
12
13
  osdkRegistryUrl: string;
13
14
  corsProxy: boolean;
14
15
  scopes: string[] | undefined;
15
16
  }
16
- export declare function run({ project, overwrite, template, sdkVersion, foundryUrl, applicationUrl, application, clientId, osdkPackage, osdkRegistryUrl, corsProxy, scopes }: RunArgs): Promise<void>;
17
+ export declare function run({ project, overwrite, template, sdkVersion, foundryUrl, applicationUrl, application, ontology, clientId, osdkPackage, osdkRegistryUrl, corsProxy, scopes }: RunArgs): Promise<void>;
17
18
  export {};
@@ -1 +1 @@
1
- {"mappings":"AA8BA,cAAc,YAAY,gBAAiC,gBAAiB;UAElE,QAAQ;CAChB;CACA;CACA,UAAU;CACV,YAAY;CACZ;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACD;AAED,OAAO,iBAAe,IACpB,EACE,SACA,WACA,UACA,YACA,YACA,gBACA,aACA,UACA,aACA,iBACA,WACA,QACQ,EAAP,UACF","names":[],"sources":["../../src/run.ts"],"version":3,"file":"run.d.ts"}
1
+ {"mappings":"AA8BA,cAAc,YAAY,gBAAiC,gBAAiB;UAElE,QAAQ;CAChB;CACA;CACA,UAAU;CACV,YAAY;CACZ;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACD;AAED,OAAO,iBAAe,IACpB,EACE,SACA,WACA,UACA,YACA,YACA,gBACA,aACA,UACA,UACA,aACA,iBACA,WACA,QACQ,EAAP,UACF","names":[],"sources":["../../src/run.ts"],"version":3,"file":"run.d.ts"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@osdk/create-app",
3
- "version": "2.2.0-beta.13",
3
+ "version": "2.2.0-beta.15",
4
4
  "description": "",
5
5
  "access": "public",
6
6
  "license": "Apache-2.0",
@@ -38,16 +38,16 @@
38
38
  "redent": "^4.0.0",
39
39
  "tmp": "^0.2.3",
40
40
  "typescript": "~5.5.4",
41
- "@osdk/create-app.template.expo.v2": "2.2.0-beta.13",
42
- "@osdk/create-app.template.react": "2.2.0-beta.13",
43
- "@osdk/create-app.template.tutorial-todo-aip-app": "2.2.0-beta.13",
44
- "@osdk/create-app.template.tutorial-todo-aip-app.beta": "2.2.0-beta.13",
45
- "@osdk/create-app.template.tutorial-todo-app": "2.2.0-beta.13",
46
- "@osdk/create-app.template.tutorial-todo-app.beta": "2.2.0-beta.13",
47
- "@osdk/create-app.template.vue": "2.2.0-beta.13",
48
- "@osdk/create-app.template.react.beta": "2.2.0-beta.13",
49
- "@osdk/create-app.template.vue.v2": "2.2.0-beta.13",
50
- "@osdk/generator-utils": "2.2.0-beta.13",
41
+ "@osdk/create-app.template.expo.v2": "2.2.0-beta.15",
42
+ "@osdk/create-app.template.react": "2.2.0-beta.15",
43
+ "@osdk/create-app.template.tutorial-todo-aip-app": "2.2.0-beta.15",
44
+ "@osdk/create-app.template.tutorial-todo-aip-app.beta": "2.2.0-beta.15",
45
+ "@osdk/create-app.template.react.beta": "2.2.0-beta.15",
46
+ "@osdk/create-app.template.tutorial-todo-app": "2.2.0-beta.15",
47
+ "@osdk/create-app.template.tutorial-todo-app.beta": "2.2.0-beta.15",
48
+ "@osdk/create-app.template.vue.v2": "2.2.0-beta.15",
49
+ "@osdk/generator-utils": "2.2.0-beta.15",
50
+ "@osdk/create-app.template.vue": "2.2.0-beta.15",
51
51
  "@osdk/monorepo.api-extractor": "~0.1.0-beta.1",
52
52
  "@osdk/monorepo.tsconfig": "~0.1.0-beta.1"
53
53
  },