@osdk/create-app 2.12.0 → 2.12.1-main-e2bad8ff54819e9aa03e4db6058775a0a68e0432
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
|
@@ -132,6 +132,7 @@ dist-ssr
|
|
|
132
132
|
"@osdk/client": "{{clientVersion}}",
|
|
133
133
|
"@osdk/foundry": "latest",
|
|
134
134
|
"@osdk/oauth": "^1.1.0",
|
|
135
|
+
"@osdk/react": "^0.13.0",
|
|
135
136
|
"@blueprintjs/core": "^6.10.0",
|
|
136
137
|
"@blueprintjs/icons": "^6.7.0",
|
|
137
138
|
"normalize.css": "^8.0.1",
|
|
@@ -186,6 +187,7 @@ dist-ssr
|
|
|
186
187
|
"@osdk/client": "{{clientVersion}}",
|
|
187
188
|
"@osdk/foundry": "latest",
|
|
188
189
|
"@osdk/oauth": "^1.1.0",
|
|
190
|
+
"@osdk/react": "^0.13.0",
|
|
189
191
|
"@blueprintjs/core": "^6.10.0",
|
|
190
192
|
"@blueprintjs/icons": "^6.7.0",
|
|
191
193
|
"normalize.css": "^8.0.1",
|
|
@@ -602,15 +604,19 @@ export default Osdk;
|
|
|
602
604
|
}], ["src/index.css", {
|
|
603
605
|
"type": "base64",
|
|
604
606
|
"body": "LyogQmx1ZXByaW50SlMgKi8KQGltcG9ydCAibm9ybWFsaXplLmNzcyI7CkBpbXBvcnQgIkBibHVlcHJpbnRqcy9jb3JlL2xpYi9jc3MvYmx1ZXByaW50LmNzcyI7CkBpbXBvcnQgIkBibHVlcHJpbnRqcy9pY29ucy9saWIvY3NzL2JsdWVwcmludC1pY29ucy5jc3MiOwoKOnJvb3QgewogIGZvbnQtZmFtaWx5OgogICAgIlNvdXJjZSBTYW5zIFBybyIsIHN5c3RlbS11aSwgQXZlbmlyLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOwogIGZvbnQtc3ludGhlc2lzOiBub25lOwogIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7CiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsKfQoKI3Jvb3QtY29udGFpbmVyIHsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGRpc3BsYXk6IGZsZXg7CiAgZmxleDogMTsKfQoKI3Jvb3QgewogIG1hcmdpbjogMCBhdXRvOwogIG1heC13aWR0aDogMTI4MHB4OwogIHBhZGRpbmc6IGNhbGModmFyKC0tYnAtc3VyZmFjZS1zcGFjaW5nKSAqIDgpOwp9Cgpib2R5IHsKICBkaXNwbGF5OiBmbGV4OwogIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgbWFyZ2luOiAwOwogIG1pbi1oZWlnaHQ6IDEwMHZoOwp9Cg=="
|
|
605
|
-
}], ["src/main.tsx", {
|
|
607
|
+
}], ["src/main.tsx.hbs", {
|
|
606
608
|
type: "raw",
|
|
607
609
|
body: `import { Suspense } from "react";
|
|
608
610
|
import ReactDOM from "react-dom/client";
|
|
609
611
|
import { RouterProvider } from "react-router-dom";
|
|
610
|
-
|
|
612
|
+
{{#if osdkPackage}}
|
|
613
|
+
import { OsdkProvider } from "@osdk/react";
|
|
614
|
+
import client from "@/client";
|
|
615
|
+
{{/if}}
|
|
611
616
|
import ErrorBoundary from "@/components/ErrorBoundary";
|
|
612
617
|
import Loading from "@/components/Loading";
|
|
613
618
|
import { router } from "@/router";
|
|
619
|
+
import "./index.css";
|
|
614
620
|
|
|
615
621
|
const rootElement = document.getElementById("root");
|
|
616
622
|
if (!rootElement) {
|
|
@@ -620,7 +626,13 @@ if (!rootElement) {
|
|
|
620
626
|
ReactDOM.createRoot(rootElement).render(
|
|
621
627
|
<ErrorBoundary>
|
|
622
628
|
<Suspense fallback={<Loading />}>
|
|
629
|
+
{{#if osdkPackage}}
|
|
630
|
+
<OsdkProvider client={client}>
|
|
631
|
+
<RouterProvider router={router} />
|
|
632
|
+
</OsdkProvider>
|
|
633
|
+
{{else}}
|
|
623
634
|
<RouterProvider router={router} />
|
|
635
|
+
{{/if}}
|
|
624
636
|
</Suspense>
|
|
625
637
|
</ErrorBoundary>,
|
|
626
638
|
);
|
|
@@ -691,5 +703,5 @@ export default defineConfig(({ mode }) => {
|
|
|
691
703
|
}]]);
|
|
692
704
|
|
|
693
705
|
export { files };
|
|
694
|
-
//# sourceMappingURL=esm-
|
|
695
|
-
//# sourceMappingURL=esm-
|
|
706
|
+
//# sourceMappingURL=esm-UDGDOKSV.js.map
|
|
707
|
+
//# sourceMappingURL=esm-UDGDOKSV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../create-app.template.react.beta/build/esm/generatedNoCheck/index.js"],"names":[],"mappings":"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","file":"esm-UDGDOKSV.js","sourcesContent":["export const files = new Map([[\".editorconfig\", {\n \"type\": \"base64\",\n \"body\": \"cm9vdCA9IHRydWUKClsqXQplbmRfb2ZfbGluZSA9IGxmCmluc2VydF9maW5hbF9uZXdsaW5lID0gdHJ1ZQp0cmltX3RyYWlsaW5nX3doaXRlc3BhY2UgPSB0cnVlCmNoYXJzZXQgPSB1dGYtOAppbmRlbnRfc3R5bGUgPSBzcGFjZQppbmRlbnRfc2l6ZSA9IDIK\"\n}], [\".vscode/extensions.json\", {\n \"type\": \"base64\",\n \"body\": \"ewogICJyZWNvbW1lbmRhdGlvbnMiOiBbCiAgICAiZGJhZXVtZXIudnNjb2RlLWVzbGludCIsCiAgICAiZXNiZW5wLnByZXR0aWVyLXZzY29kZSIsCiAgICAiZWRpdG9yY29uZmlnLmVkaXRvcmNvbmZpZyIKICBdCn0K\"\n}], [\".vscode/settings.json\", {\n \"type\": \"base64\",\n \"body\": \"ewogICJlZGl0b3IuZm9ybWF0T25TYXZlIjogdHJ1ZSwKICAiZWRpdG9yLmRlZmF1bHRGb3JtYXR0ZXIiOiAiZXNiZW5wLnByZXR0aWVyLXZzY29kZSIsCiAgImVzbGludC51c2VGbGF0Q29uZmlnIjogdHJ1ZSwKICAic2VhcmNoLmV4Y2x1ZGUiOiB7CiAgICAiKiovbm9kZV9tb2R1bGVzIjogdHJ1ZSwKICAgICIqKi9kaXN0IjogdHJ1ZQogIH0KfQo=\"\n}], [\"README.md.hbs\", {\n type: \"raw\",\n body: `# {{project}}\n\n{{#if osdkPackage}}\nThis project was generated with [\\`@osdk/create-app\\`](https://www.npmjs.com/package/@osdk/create-app) and demonstrates using the Ontology SDK package \\`{{osdkPackage}}\\` with React on top of Vite. Check out the [Vite](https://vitejs.dev/guide/) docs for further configuration.\n{{else}}\nThis project was generated with [\\`@osdk/create-app\\`](https://www.npmjs.com/package/@osdk/create-app) and demonstrates using the Platform SDK with React on top of Vite. Check out the [Vite](https://vitejs.dev/guide/) docs for further configuration.\n\nIf you later add an Ontology SDK to your application, follow this [guide]({{foundryUrl}}/docs/foundry/ontology-sdk/add-osdk-to-bootstrapped-repository) to correctly set it up in this project.\n{{/if}}\n\n## Developing\n\nRun the following command or equivalent with your preferred package manager to start a local development server on \\`http://localhost:8080\\`:\n\n\\`\\`\\`sh\nnpm run dev\n\\`\\`\\`\n\nDevelopment configuration is stored in \\`.env.development\\`.\n\n{{#if corsProxy}}\nIn order to make API requests to Foundry, a CORS proxy has been set up for local development which may be removed if the stack is configured to allow \\`http://localhost:8080\\` to load resources. The configured OAuth client must also allow \\`http://localhost:8080/auth/callback\\` as a redirect URL.\n{{else}}\nIn order to make API requests to Foundry, CORS must be configured for the stack to allow \\`http://localhost:8080\\` to load resources. If this has not been configured and you are unable to request this, you can alternatively generate your project again with \\`--corsProxy true\\` to use a proxy for API requests during local development. The configured OAuth client must also allow \\`http://localhost:8080/auth/callback\\` as a redirect URL.\n{{/if}}\n\n## Deploying\n\nRun the following command or equivalent with your preferred package manager to create a production build of your application:\n\n\\`\\`\\`sh\nnpm run build\n\\`\\`\\`\n\nProduction configuration is stored in \\`.env.production\\`.\n\nIf you did not fill in the URL your production application will be hosted on you will need to fill in the \\`VITE_FOUNDRY_REDIRECT_URL\\` in \\`.env.production\\`. A default test is included in \\`env.test.ts\\` to verify your production environment variables which you can enable by removing the skip condition or running tests with the environment variable set \\`VERIFY_ENV_PRODUCTION=true\\`.\n\nIn order to make API requests to Foundry, CORS must be configured for the stack to allow the production origin to load resources. This will be automatically done for you if you are using Foundry website hosting. The configured OAuth client must also allow the production origin auth callback as a redirect URL.\n\nA \\`foundry.config.json\\` file is included in the root of this project to make deploying to Foundry website hosting with [\\`@osdk/cli\\`](https://www.npmjs.com/package/@osdk/cli) easier. If you are not using Foundry website hosting for your application you may delete this file.\n`\n}], [\".gitignore\", {\n type: \"raw\",\n body: `# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\npnpm-debug.log*\nlerna-debug.log*\n\nnode_modules\ndist\ndist-ssr\n*.local\n.pnpm-store\n\n# Editor directories and files\n.vscode/*\n!.vscode/extensions.json\n!.vscode/settings.json\n.idea\n.DS_Store\n*.suo\n*.ntvs*\n*.njsproj\n*.sln\n*.sw?\n`\n}], [\"eslint.config.mjs\", {\n \"type\": \"base64\",\n \"body\": \"Ly8gQHRzLWNoZWNrCmltcG9ydCBlc2xpbnQgZnJvbSAiQGVzbGludC9qcyI7CmltcG9ydCB0c1BhcnNlciBmcm9tICJAdHlwZXNjcmlwdC1lc2xpbnQvcGFyc2VyIjsKaW1wb3J0ICogYXMgaW1wb3J0UGx1Z2luIGZyb20gImVzbGludC1wbHVnaW4taW1wb3J0IjsKaW1wb3J0IGpzeEExMXlQbHVnaW4gZnJvbSAiZXNsaW50LXBsdWdpbi1qc3gtYTExeSI7CmltcG9ydCByZWFjdFBsdWdpbiBmcm9tICJlc2xpbnQtcGx1Z2luLXJlYWN0IjsKaW1wb3J0IHJlYWN0SG9va3NQbHVnaW4gZnJvbSAiZXNsaW50LXBsdWdpbi1yZWFjdC1ob29rcyI7CmltcG9ydCByZWFjdFJlZnJlc2ggZnJvbSAiZXNsaW50LXBsdWdpbi1yZWFjdC1yZWZyZXNoIjsKaW1wb3J0IGdsb2JhbHMgZnJvbSAiZ2xvYmFscyI7CmltcG9ydCB0c2VzbGludCBmcm9tICJ0eXBlc2NyaXB0LWVzbGludCI7CgpleHBvcnQgZGVmYXVsdCB0c2VzbGludC5jb25maWcoewogIGZpbGVzOiBbImVzbGludC5jb25maWcubWpzIiwgInNyYy8qKi8qLntqcyxtanMsY2pzLHRzLGpzeCx0c3h9Il0sCiAgc2V0dGluZ3M6IHsKICAgIHJlYWN0OiB7CiAgICAgIHZlcnNpb246ICJkZXRlY3QiLAogICAgfSwKCiAgICAiaW1wb3J0L3Jlc29sdmVyIjogewogICAgICBub2RlOiB7CiAgICAgICAgZXh0ZW5zaW9uczogWyIuanMiLCAiLmpzeCIsICIudHMiLCAiLnRzeCJdLAogICAgICB9LAogICAgfSwKICB9LAogIGxhbmd1YWdlT3B0aW9uczogewogICAgZ2xvYmFsczogewogICAgICAuLi5nbG9iYWxzLmJyb3dzZXIsCiAgICB9LAoKICAgIHBhcnNlcjogdHNQYXJzZXIsCiAgfSwKICBleHRlbmRzOiBbCiAgICBlc2xpbnQuY29uZmlncy5yZWNvbW1lbmRlZCwKICAgIC4uLnRzZXNsaW50LmNvbmZpZ3MucmVjb21tZW5kZWQsCiAgXSwKICBwbHVnaW5zOiB7CiAgICAicmVhY3QiOiAvKiogQHR5cGUgaW1wb3J0KCJlc2xpbnQiKS5FU0xpbnQuUGx1Z2luICovIChyZWFjdFBsdWdpbiksCiAgICAicmVhY3QtcmVmcmVzaCI6IHJlYWN0UmVmcmVzaCwKICAgICJyZWFjdC1ob29rcyI6CiAgICAgIC8qKiBAdHlwZSBpbXBvcnQoImVzbGludCIpLkVTTGludC5QbHVnaW4gKi8gKHJlYWN0SG9va3NQbHVnaW4pLAogICAgImpzeC1hMTF5IjoganN4QTExeVBsdWdpbiwKICAgICJpbXBvcnQiOiBpbXBvcnRQbHVnaW4sCiAgfSwKICBydWxlczogewogICAgLi4uKAogICAgICAvKiogQHR5cGUgaW1wb3J0KCJlc2xpbnQiKS5MaW50ZXIuUnVsZXNSZWNvcmQgKi8KICAgICAgKHJlYWN0UGx1Z2luLmNvbmZpZ3MuZmxhdD8ucmVjb21tZW5kZWQucnVsZXMpCiAgICApLAogICAgInJlYWN0LWhvb2tzL3J1bGVzLW9mLWhvb2tzIjogImVycm9yIiwKICAgICJyZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHMiOiAid2FybiIsCiAgICAuLi5qc3hBMTF5UGx1Z2luLmNvbmZpZ3MucmVjb21tZW5kZWQucnVsZXMsCiAgICAicmVhY3QtcmVmcmVzaC9vbmx5LWV4cG9ydC1jb21wb25lbnRzIjogWyJ3YXJuIiwgewogICAgICBhbGxvd0NvbnN0YW50RXhwb3J0OiB0cnVlLAogICAgfV0sCgogICAgImVxZXFlcSI6IFsiZXJyb3IiLCAiYWx3YXlzIiwgeyAibnVsbCI6ICJpZ25vcmUiIH1dLAogICAgIm5vLWNvbnNvbGUiOiAid2FybiIsCiAgICAiY3VybHkiOiBbImVycm9yIiwgImFsbCJdLAogICAgIkB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyI6IFsiZXJyb3IiLCB7CiAgICAgICJhcmdzSWdub3JlUGF0dGVybiI6ICJeXyIsCiAgICB9XSwKICAgICJpbXBvcnQvbmFtZWQiOiAiZXJyb3IiLAogICAgImltcG9ydC9kZWZhdWx0IjogImVycm9yIiwKICAgICJpbXBvcnQvbmFtZXNwYWNlIjogImVycm9yIiwKICAgICJpbXBvcnQvbm8tZHVwbGljYXRlcyI6ICJlcnJvciIsCiAgICAiaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzIjogImVycm9yIiwKICAgICJyZWFjdC9yZWFjdC1pbi1qc3gtc2NvcGUiOiAib2ZmIiwKICB9LAp9KTsK\"\n}], [\"index.html.hbs\", {\n type: \"raw\",\n body: `<!doctype html>\n<html lang=\"en\">\n <head>\n <meta charset=\"UTF-8\" />\n <link rel=\"icon\" type=\"image/svg+xml\" href=\"/react.svg\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <meta name=\"osdk-clientId\" content=\"%VITE_FOUNDRY_CLIENT_ID%\" />\n <meta name=\"osdk-redirectUrl\" content=\"%VITE_FOUNDRY_REDIRECT_URL%\" />\n <meta name=\"osdk-foundryUrl\" content=\"%VITE_FOUNDRY_API_URL%\" />\n {{#if osdkPackage}}\n <meta name=\"osdk-ontologyRid\" content=\"%VITE_FOUNDRY_ONTOLOGY_RID%\" />\n <title>Ontology SDK + React</title>\n {{else}}\n <title>Platform SDK + React</title>\n {{/if}}\n </head>\n <body>\n <div id=\"root-container\">\n <div id=\"root\"></div>\n </div>\n <script type=\"module\" src=\"/src/main.tsx\"></script>\n </body>\n</html>\n`\n}], [\"package.json.osdk.hbs\", {\n type: \"raw\",\n body: `{\n \"name\": \"{{project}}\",\n \"private\": true,\n \"version\": \"0.0.0\",\n \"type\": \"module\",\n \"scripts\": {\n \"dev\": \"vite\",\n \"build\": \"tsc && vite build\",\n \"format\": \"prettier --write src/\",\n \"lint\": \"eslint . --report-unused-disable-directives --max-warnings 0\",\n \"lint:fix\": \"eslint --report-unused-disable-directives --max-warnings 0 --fix\",\n \"test\": \"vitest run\",\n \"check\": \"eslint . --report-unused-disable-directives --max-warnings 0 && tsc --noEmit && vitest run\",\n \"preview\": \"vite preview\"\n },\n \"dependencies\": {\n \"{{osdkPackage}}\": \"latest\",\n \"@osdk/client\": \"{{clientVersion}}\",\n \"@osdk/foundry\": \"latest\",\n \"@osdk/oauth\": \"^1.1.0\",\n \"@osdk/react\": \"^0.13.0\",\n \"@blueprintjs/core\": \"^6.10.0\",\n \"@blueprintjs/icons\": \"^6.7.0\",\n \"normalize.css\": \"^8.0.1\",\n \"react\": \"^18\",\n \"react-dom\": \"^18\",\n \"react-router-dom\": \"^6.30.1\"\n },\n \"devDependencies\": {\n \"@trivago/prettier-plugin-sort-imports\": \"^5.0.0\",\n \"prettier\": \"^3.0.0\",\n \"@eslint/compat\": \"^1.3.2\",\n \"@eslint/js\": \"^9.35.0\",\n \"@types/eslint-plugin-jsx-a11y\": \"^6.10.0\",\n \"@types/node\": \"^24.12.0\",\n \"@types/react\": \"^18\",\n \"@types/react-dom\": \"^18\",\n \"@typescript-eslint/eslint-plugin\": \"^8.43.0\",\n \"@typescript-eslint/parser\": \"^8.43.0\",\n \"@vitejs/plugin-react\": \"^4.7.0\",\n \"eslint\": \"^9.35.0\",\n \"eslint-plugin-import\": \"^2.32.0\",\n \"eslint-plugin-jsx-a11y\": \"^6.10.2\",\n \"eslint-plugin-prettier\": \"^5.5.4\",\n \"eslint-plugin-react\": \"^7.37.5\",\n \"eslint-plugin-react-hooks\": \"^5.2.0\",\n \"eslint-plugin-react-refresh\": \"^0.4.20\",\n \"globals\": \"^15.15.0\",\n \"typescript\": \"~5.5.4\",\n \"typescript-eslint\": \"^8.43.0\",\n \"vite\": \"^7.3.1\",\n \"vitest\": \"^3.2.4\"\n }\n}`\n}], [\"package.json.psdk.hbs\", {\n type: \"raw\",\n body: `{\n \"name\": \"{{project}}\",\n \"private\": true,\n \"version\": \"0.0.0\",\n \"type\": \"module\",\n \"scripts\": {\n \"dev\": \"vite\",\n \"build\": \"tsc && vite build\",\n \"format\": \"prettier --write src/\",\n \"lint\": \"eslint . --report-unused-disable-directives --max-warnings 0\",\n \"lint:fix\": \"eslint --report-unused-disable-directives --max-warnings 0 --fix\",\n \"test\": \"vitest run\",\n \"check\": \"eslint . --report-unused-disable-directives --max-warnings 0 && tsc --noEmit && vitest run\",\n \"preview\": \"vite preview\"\n },\n \"dependencies\": {\n \"@osdk/client\": \"{{clientVersion}}\",\n \"@osdk/foundry\": \"latest\",\n \"@osdk/oauth\": \"^1.1.0\",\n \"@osdk/react\": \"^0.13.0\",\n \"@blueprintjs/core\": \"^6.10.0\",\n \"@blueprintjs/icons\": \"^6.7.0\",\n \"normalize.css\": \"^8.0.1\",\n \"react\": \"^18\",\n \"react-dom\": \"^18\",\n \"react-router-dom\": \"^6.30.1\"\n },\n \"devDependencies\": {\n \"@trivago/prettier-plugin-sort-imports\": \"^5.0.0\",\n \"prettier\": \"^3.0.0\",\n \"@eslint/compat\": \"^1.3.2\",\n \"@eslint/js\": \"^9.35.0\",\n \"@types/eslint-plugin-jsx-a11y\": \"^6.10.0\",\n \"@types/node\": \"^24.12.0\",\n \"@types/react\": \"^18\",\n \"@types/react-dom\": \"^18\",\n \"@typescript-eslint/eslint-plugin\": \"^8.43.0\",\n \"@typescript-eslint/parser\": \"^8.43.0\",\n \"@vitejs/plugin-react\": \"^4.7.0\",\n \"eslint\": \"^9.35.0\",\n \"eslint-plugin-import\": \"^2.32.0\",\n \"eslint-plugin-jsx-a11y\": \"^6.10.2\",\n \"eslint-plugin-prettier\": \"^5.5.4\",\n \"eslint-plugin-react\": \"^7.37.5\",\n \"eslint-plugin-react-hooks\": \"^5.2.0\",\n \"eslint-plugin-react-refresh\": \"^0.4.20\",\n \"globals\": \"^15.15.0\",\n \"typescript\": \"~5.5.4\",\n \"typescript-eslint\": \"^8.43.0\",\n \"vite\": \"^7.3.1\",\n \"vitest\": \"^3.2.4\"\n }\n}`\n}], [\"prettier.config.js\", {\n \"type\": \"base64\",\n \"body\": \"ZXhwb3J0IGRlZmF1bHQgewogIHNlbWk6IHRydWUsCiAgc2luZ2xlUXVvdGU6IGZhbHNlLAogIHRyYWlsaW5nQ29tbWE6ICJhbGwiLAogIHByaW50V2lkdGg6IDEwMCwKICB0YWJXaWR0aDogMiwKICBwbHVnaW5zOiBbIkB0cml2YWdvL3ByZXR0aWVyLXBsdWdpbi1zb3J0LWltcG9ydHMiXSwKICBpbXBvcnRPcmRlcjogWwogICAgIl5yZWFjdCIsCiAgICAiXkBvc2RrLyguKikkIiwKICAgICI8VEhJUkRfUEFSVFlfTU9EVUxFUz4iLAogICAgIl5ALyguKikkIiwKICAgICJeWy4vXSIsCiAgXSwKICBpbXBvcnRPcmRlclNlcGFyYXRpb246IGZhbHNlLAogIGltcG9ydE9yZGVyU29ydFNwZWNpZmllcnM6IHRydWUsCn07Cg==\"\n}], [\"public/palantir.svg\", {\n \"type\": \"base64\",\n \"body\": \"PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00LjEwNzY4IDYuMDY0MDFDNC4xMDc2OCA4LjM3NzEgNS45NjcwMiAxMC4yNTI2IDguMjYwNTkgMTAuMjUyNkMxMC41NTQzIDEwLjI1MjYgMTIuNDEzOCA4LjM3NzEgMTIuNDEzOCA2LjA2NDAxQzEyLjQxMzggMy43NTA4IDEwLjU1NDMgMS44NzU1MyA4LjI2MDU5IDEuODc1NTNDNS45NjcwMiAxLjg3NTUzIDQuMTA3NjggMy43NTA4IDQuMTA3NjggNi4wNjQwMVpNOC4yNjA5MyAxMy45MjNMMTMuNjI5OSAxMS41ODQ4TDE0LjUyMTcgMTMuMzA5MUw4LjI2MDkzIDE2TDIgMTMuMzA5MUwyLjg5MjAxIDExLjU4NDhMOC4yNjA5MyAxMy45MjNaTTguMjYxMDEgMEM0Ljk0MzY3IDAgMi4yNTQ0MiAyLjcxMjI4IDIuMjU0NDIgNi4wNTgwM0MyLjI1NDQyIDkuNDAzNzggNC45NDM2NyAxMi4xMTU5IDguMjYxMDEgMTIuMTE1OUMxMS41NzgyIDEyLjExNTkgMTQuMjY3NiA5LjQwMzc4IDE0LjI2NzYgNi4wNTgwM0MxNC4yNjc2IDIuNzEyMjggMTEuNTc4MiAwIDguMjYxMDEgMFoiIGZpbGw9IiMxMTE0MTgiLz4KPC9zdmc+Cg==\"\n}], [\"public/react.svg\", {\n \"type\": \"base64\",\n \"body\": \"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIiBjbGFzcz0iaWNvbmlmeSBpY29uaWZ5LS1sb2dvcyIgd2lkdGg9IjM1LjkzIiBoZWlnaHQ9IjMyIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCBtZWV0IiB2aWV3Qm94PSIwIDAgMjU2IDIyOCI+PHBhdGggZmlsbD0iIzAwRDhGRiIgZD0iTTIxMC40ODMgNzMuODI0YTE3MS40OSAxNzEuNDkgMCAwIDAtOC4yNC0yLjU5N2MuNDY1LTEuOS44OTMtMy43NzcgMS4yNzMtNS42MjFjNi4yMzgtMzAuMjgxIDIuMTYtNTQuNjc2LTExLjc2OS02Mi43MDhjLTEzLjM1NS03LjctMzUuMTk2LjMyOS01Ny4yNTQgMTkuNTI2YTE3MS4yMyAxNzEuMjMgMCAwIDAtNi4zNzUgNS44NDhhMTU1Ljg2NiAxNTUuODY2IDAgMCAwLTQuMjQxLTMuOTE3QzEwMC43NTkgMy44MjkgNzcuNTg3LTQuODIyIDYzLjY3MyAzLjIzM0M1MC4zMyAxMC45NTcgNDYuMzc5IDMzLjg5IDUxLjk5NSA2Mi41ODhhMTcwLjk3NCAxNzAuOTc0IDAgMCAwIDEuODkyIDguNDhjLTMuMjguOTMyLTYuNDQ1IDEuOTI0LTkuNDc0IDIuOThDMTcuMzA5IDgzLjQ5OCAwIDk4LjMwNyAwIDExMy42NjhjMCAxNS44NjUgMTguNTgyIDMxLjc3OCA0Ni44MTIgNDEuNDI3YTE0NS41MiAxNDUuNTIgMCAwIDAgNi45MjEgMi4xNjVhMTY3LjQ2NyAxNjcuNDY3IDAgMCAwLTIuMDEgOS4xMzhjLTUuMzU0IDI4LjItMS4xNzMgNTAuNTkxIDEyLjEzNCA1OC4yNjZjMTMuNzQ0IDcuOTI2IDM2LjgxMi0uMjIgNTkuMjczLTE5Ljg1NWExNDUuNTY3IDE0NS41NjcgMCAwIDAgNS4zNDItNC45MjNhMTY4LjA2NCAxNjguMDY0IDAgMCAwIDYuOTIgNi4zMTRjMjEuNzU4IDE4LjcyMiA0My4yNDYgMjYuMjgyIDU2LjU0IDE4LjU4NmMxMy43MzEtNy45NDkgMTguMTk0LTMyLjAwMyAxMi40LTYxLjI2OGExNDUuMDE2IDE0NS4wMTYgMCAwIDAtMS41MzUtNi44NDJjMS42Mi0uNDggMy4yMS0uOTc0IDQuNzYtMS40ODhjMjkuMzQ4LTkuNzIzIDQ4LjQ0My0yNS40NDMgNDguNDQzLTQxLjUyYzAtMTUuNDE3LTE3Ljg2OC0zMC4zMjYtNDUuNTE3LTM5Ljg0NFptLTYuMzY1IDcwLjk4NGMtMS40LjQ2My0yLjgzNi45MS00LjMgMS4zNDVjLTMuMjQtMTAuMjU3LTcuNjEyLTIxLjE2My0xMi45NjMtMzIuNDMyYzUuMTA2LTExIDkuMzEtMjEuNzY3IDEyLjQ1OS0zMS45NTdjMi42MTkuNzU4IDUuMTYgMS41NTcgNy42MSAyLjRjMjMuNjkgOC4xNTYgMzguMTQgMjAuMjEzIDM4LjE0IDI5LjUwNGMwIDkuODk2LTE1LjYwNiAyMi43NDMtNDAuOTQ2IDMxLjE0Wm0tMTAuNTE0IDIwLjgzNGMyLjU2MiAxMi45NCAyLjkyNyAyNC42NCAxLjIzIDMzLjc4N2MtMS41MjQgOC4yMTktNC41OSAxMy42OTgtOC4zODIgMTUuODkzYy04LjA2NyA0LjY3LTI1LjMyLTEuNC00My45MjctMTcuNDEyYTE1Ni43MjYgMTU2LjcyNiAwIDAgMS02LjQzNy01Ljg3YzcuMjE0LTcuODg5IDE0LjQyMy0xNy4wNiAyMS40NTktMjcuMjQ2YzEyLjM3Ni0xLjA5OCAyNC4wNjgtMi44OTQgMzQuNjcxLTUuMzQ1YTEzNC4xNyAxMzQuMTcgMCAwIDEgMS4zODYgNi4xOTNaTTg3LjI3NiAyMTQuNTE1Yy03Ljg4MiAyLjc4My0xNC4xNiAyLjg2My0xNy45NTUuNjc1Yy04LjA3NS00LjY1Ny0xMS40MzItMjIuNjM2LTYuODUzLTQ2Ljc1MmExNTYuOTIzIDE1Ni45MjMgMCAwIDEgMS44NjktOC40OTljMTAuNDg2IDIuMzIgMjIuMDkzIDMuOTg4IDM0LjQ5OCA0Ljk5NGM3LjA4NCA5Ljk2NyAxNC41MDEgMTkuMTI4IDIxLjk3NiAyNy4xNWExMzQuNjY4IDEzNC42NjggMCAwIDEtNC44NzcgNC40OTJjLTkuOTMzIDguNjgyLTE5Ljg4NiAxNC44NDItMjguNjU4IDE3Ljk0Wk01MC4zNSAxNDQuNzQ3Yy0xMi40ODMtNC4yNjctMjIuNzkyLTkuODEyLTI5Ljg1OC0xNS44NjNjLTYuMzUtNS40MzctOS41NTUtMTAuODM2LTkuNTU1LTE1LjIxNmMwLTkuMzIyIDEzLjg5Ny0yMS4yMTIgMzcuMDc2LTI5LjI5M2MyLjgxMy0uOTggNS43NTctMS45MDUgOC44MTItMi43NzNjMy4yMDQgMTAuNDIgNy40MDYgMjEuMzE1IDEyLjQ3NyAzMi4zMzJjLTUuMTM3IDExLjE4LTkuMzk5IDIyLjI0OS0xMi42MzQgMzIuNzkyYTEzNC43MTggMTM0LjcxOCAwIDAgMS02LjMxOC0xLjk3OVptMTIuMzc4LTg0LjI2Yy00LjgxMS0yNC41ODctMS42MTYtNDMuMTM0IDYuNDI1LTQ3Ljc4OWM4LjU2NC00Ljk1OCAyNy41MDIgMi4xMTEgNDcuNDYzIDE5LjgzNWExNDQuMzE4IDE0NC4zMTggMCAwIDEgMy44NDEgMy41NDVjLTcuNDM4IDcuOTg3LTE0Ljc4NyAxNy4wOC0yMS44MDggMjYuOTg4Yy0xMi4wNCAxLjExNi0yMy41NjUgMi45MDgtMzQuMTYxIDUuMzA5YTE2MC4zNDIgMTYwLjM0MiAwIDAgMS0xLjc2LTcuODg3Wm0xMTAuNDI3IDI3LjI2OGEzNDcuOCAzNDcuOCAwIDAgMC03Ljc4NS0xMi44MDNjOC4xNjggMS4wMzMgMTUuOTk0IDIuNDA0IDIzLjM0MyA0LjA4Yy0yLjIwNiA3LjA3Mi00Ljk1NiAxNC40NjUtOC4xOTMgMjIuMDQ1YTM4MS4xNTEgMzgxLjE1MSAwIDAgMC03LjM2NS0xMy4zMjJabS00NS4wMzItNDMuODYxYzUuMDQ0IDUuNDY1IDEwLjA5NiAxMS41NjYgMTUuMDY1IDE4LjE4NmEzMjIuMDQgMzIyLjA0IDAgMCAwLTMwLjI1Ny0uMDA2YzQuOTc0LTYuNTU5IDEwLjA2OS0xMi42NTIgMTUuMTkyLTE4LjE4Wk04Mi44MDIgODcuODNhMzIzLjE2NyAzMjMuMTY3IDAgMCAwLTcuMjI3IDEzLjIzOGMtMy4xODQtNy41NTMtNS45MDktMTQuOTgtOC4xMzQtMjIuMTUyYzcuMzA0LTEuNjM0IDE1LjA5My0yLjk3IDIzLjIwOS0zLjk4NGEzMjEuNTI0IDMyMS41MjQgMCAwIDAtNy44NDggMTIuODk3Wm04LjA4MSA2NS4zNTJjLTguMzg1LS45MzYtMTYuMjkxLTIuMjAzLTIzLjU5My0zLjc5M2MyLjI2LTcuMyA1LjA0NS0xNC44ODUgOC4yOTgtMjIuNmEzMjEuMTg3IDMyMS4xODcgMCAwIDAgNy4yNTcgMTMuMjQ2YzIuNTk0IDQuNDggNS4yOCA4Ljg2OCA4LjAzOCAxMy4xNDdabTM3LjU0MiAzMS4wM2MtNS4xODQtNS41OTItMTAuMzU0LTExLjc3OS0xNS40MDMtMTguNDMzYzQuOTAyLjE5MiA5Ljg5OS4yOSAxNC45NzguMjljNS4yMTggMCAxMC4zNzYtLjExNyAxNS40NTMtLjM0M2MtNC45ODUgNi43NzQtMTAuMDE4IDEyLjk3LTE1LjAyOCAxOC40ODZabTUyLjE5OC01Ny44MTdjMy40MjIgNy44IDYuMzA2IDE1LjM0NSA4LjU5NiAyMi41MmMtNy40MjIgMS42OTQtMTUuNDM2IDMuMDU4LTIzLjg4IDQuMDcxYTM4Mi40MTcgMzgyLjQxNyAwIDAgMCA3Ljg1OS0xMy4wMjZhMzQ3LjQwMyAzNDcuNDAzIDAgMCAwIDcuNDI1LTEzLjU2NVptLTE2Ljg5OCA4LjEwMWEzNTguNTU3IDM1OC41NTcgMCAwIDEtMTIuMjgxIDE5LjgxNWEzMjkuNCAzMjkuNCAwIDAgMS0yMy40NDQuODIzYy03Ljk2NyAwLTE1LjcxNi0uMjQ4LTIzLjE3OC0uNzMyYTMxMC4yMDIgMzEwLjIwMiAwIDAgMS0xMi41MTMtMTkuODQ2aC4wMDFhMzA3LjQxIDMwNy40MSAwIDAgMS0xMC45MjMtMjAuNjI3YTMxMC4yNzggMzEwLjI3OCAwIDAgMSAxMC44OS0yMC42MzdsLS4wMDEuMDAxYTMwNy4zMTggMzA3LjMxOCAwIDAgMSAxMi40MTMtMTkuNzYxYzcuNjEzLS41NzYgMTUuNDItLjg3NiAyMy4zMS0uODc2SDEyOGM3LjkyNiAwIDE1Ljc0My4zMDMgMjMuMzU0Ljg4M2EzMjkuMzU3IDMyOS4zNTcgMCAwIDEgMTIuMzM1IDE5LjY5NWEzNTguNDg5IDM1OC40ODkgMCAwIDEgMTEuMDM2IDIwLjU0YTMyOS40NzIgMzI5LjQ3MiAwIDAgMS0xMSAyMC43MjJabTIyLjU2LTEyMi4xMjRjOC41NzIgNC45NDQgMTEuOTA2IDI0Ljg4MSA2LjUyIDUxLjAyNmMtLjM0NCAxLjY2OC0uNzMgMy4zNjctMS4xNSA1LjA5Yy0xMC42MjItMi40NTItMjIuMTU1LTQuMjc1LTM0LjIzLTUuNDA4Yy03LjAzNC0xMC4wMTctMTQuMzIzLTE5LjEyNC0yMS42NC0yNy4wMDhhMTYwLjc4OSAxNjAuNzg5IDAgMCAxIDUuODg4LTUuNGMxOC45LTE2LjQ0NyAzNi41NjQtMjIuOTQxIDQ0LjYxMi0xOC4zWk0xMjggOTAuODA4YzEyLjYyNSAwIDIyLjg2IDEwLjIzNSAyMi44NiAyMi44NnMtMTAuMjM1IDIyLjg2LTIyLjg2IDIyLjg2cy0yMi44Ni0xMC4yMzUtMjIuODYtMjIuODZzMTAuMjM1LTIyLjg2IDIyLjg2LTIyLjg2WiI+PC9wYXRoPjwvc3ZnPg==\"\n}], [\"src/AuthCallback.tsx\", {\n type: \"raw\",\n body: `import { auth } from \"@/client\";\nimport React, { useEffect, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\n\n/**\n * Component to render at \\`/auth/callback\\`\n * This calls signIn() again to save the token, and then navigates the user back to the home page.\n */\nfunction AuthCallback(): React.ReactElement {\n const [error, setError] = useState<string | undefined>(undefined);\n const navigate = useNavigate();\n\n // This effect conflicts with React 18 strict mode in development\n // https://react.dev/learn/synchronizing-with-effects#how-to-handle-the-effect-firing-twice-in-development\n useEffect(() => {\n auth\n .signIn()\n .then(() => navigate(\"/\", { replace: true }))\n .catch((e: unknown) => {\n if (e instanceof Error) {\n setError(e.message);\n } else {\n setError(String(e));\n }\n });\n }, [navigate]);\n return <div>{error != null ? error : \"Authenticating…\"}</div>;\n}\n\nexport default AuthCallback;\n`\n}], [\"src/Home.module.css\", {\n \"type\": \"base64\",\n \"body\": \"LmhvbWUgewogIGRpc3BsYXk6IGZsZXg7CiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICBnYXA6IGNhbGModmFyKC0tYnAtc3VyZmFjZS1zcGFjaW5nKSAqIDE1KTsKICBtYXgtd2lkdGg6IDgwMHB4OwogIHdpZHRoOiAxMDAlOwp9Cg==\"\n}], [\"src/Home.tsx.hbs\", {\n type: \"raw\",\n body: `import React from \"react\";\n{{#if osdkPackage}}\n// import { useOsdkClient } from \"@osdk/react\";\n{{/if}}\nimport css from \"./Home.module.css\";\nimport Header from \"@/components/Header\";\nimport NextSteps from \"@/components/NextSteps\";\n{{#if osdkPackage}}\nimport Osdk from \"@/components/Osdk\";\n{{/if}}\n\nfunction Home(): React.ReactElement {\n {{#if osdkPackage}}\n // See Ontology and Platform SDK docs in Developer Console on how to\n // use the client object to access Ontology resources and platform APIs\n // const client = useOsdkClient();\n\n {{/if}}\n return (\n <div className={css.home}>\n <Header />\n {{#if osdkPackage}}\n <Osdk />\n {{/if}}\n <NextSteps />\n </div>\n );\n}\n\nexport default Home;\n`\n}], [\"src/client.ts.hbs\", {\n type: \"raw\",\n body: `{{#if osdkPackage}}\nimport { createClient, type Client } from \"@osdk/client\";\n{{else}}\nimport { createPlatformClient, type PlatformClient } from \"@osdk/client\";\n{{/if}}\nimport { createPublicOauthClient, type PublicOauthClient } from \"@osdk/oauth\";\n\nfunction getMetaTagContent(tagName: string): string {\n const elements = document.querySelectorAll(\\`meta[name=\"\\${tagName}\"]\\`);\n const element = elements.item(elements.length - 1);\n const value = element ? element.getAttribute(\"content\") : null;\n if (value == null || value === \"\") {\n throw new Error(\\`Meta tag \\${tagName} not found or empty\\`);\n }\n if (value.match(/%.+%/)) {\n throw new Error(\n \\`Meta tag \\${tagName} contains placeholder value. Please add \\${value.replace(\n /%/g,\n \"\"\n )} to your .env files\\`\n );\n }\n return value;\n}\n\nconst foundryUrl = getMetaTagContent(\"osdk-foundryUrl\");\nconst clientId = getMetaTagContent(\"osdk-clientId\");\nconst redirectUrl = getMetaTagContent(\"osdk-redirectUrl\");\n{{#if osdkPackage}}\nconst ontologyRid = getMetaTagContent(\"osdk-ontologyRid\");\n{{/if}}\n\n{{#if scopes}}\nconst scopes = [\n {{#each scopes}}\n \"{{this}}\",\n {{/each}}\n];\n{{/if}}\n\nexport const auth: PublicOauthClient = createPublicOauthClient(\n clientId,\n foundryUrl,\n redirectUrl,\n {{#if scopes}}\n { scopes }\n {{/if}}\n);\n\n{{#if osdkPackage}}\n/**\n * Initialize the client to interact with the Ontology and Platform SDKs\n */\nexport const client: Client = createClient(foundryUrl, ontologyRid, auth);\n{{else}}\n/**\n * Initialize the client to interact with the Platform SDK\n *\n * If you later add an Ontology SDK to your application, follow the steps in \n * {{foundryUrl}}/docs/foundry/ontology-sdk/add-osdk-to-bootstrapped-repository/\n * to correctly set it up in this project.\n */\nexport const client: PlatformClient = createPlatformClient(foundryUrl, auth);\n{{/if}}\n\nexport default client;\n`\n}], [\"src/components/ErrorBoundary.module.css\", {\n \"type\": \"base64\",\n \"body\": \"LmNvbnRhaW5lciB7CiAgcGFkZGluZzogMnJlbTsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCi5tZXNzYWdlIHsKICBjb2xvcjogIzVmNmI3YzsKfQoKLnJldHJ5QnV0dG9uIHsKICBtYXJnaW4tdG9wOiAxcmVtOwogIHBhZGRpbmc6IDhweCAxNnB4OwogIGJvcmRlcjogMXB4IHNvbGlkICNlMWU0ZTg7CiAgYm9yZGVyLXJhZGl1czogNHB4OwogIGJhY2tncm91bmQ6ICNmZmY7CiAgY3Vyc29yOiBwb2ludGVyOwp9Cg==\"\n}], [\"src/components/ErrorBoundary.tsx\", {\n type: \"raw\",\n body: `import React from \"react\";\nimport css from \"./ErrorBoundary.module.css\";\n\ninterface ErrorBoundaryProps {\n children: React.ReactNode;\n}\n\ninterface ErrorBoundaryState {\n error: Error | null;\n}\n\nclass ErrorBoundary\n extends React.Component<ErrorBoundaryProps, ErrorBoundaryState>\n{\n constructor(props: ErrorBoundaryProps) {\n super(props);\n this.state = { error: null };\n }\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n return { error };\n }\n\n render(): React.ReactNode {\n if (this.state.error) {\n return (\n <div className={css.container}>\n <h2>Something went wrong</h2>\n <p className={css.message}>{this.state.error.message}</p>\n <button\n className={css.retryButton}\n onClick={() => this.setState({ error: null })}\n >\n Try again\n </button>\n </div>\n );\n }\n\n return this.props.children;\n }\n}\n\nexport default ErrorBoundary;\n`\n}], [\"src/components/Header.module.css\", {\n \"type\": \"base64\",\n \"body\": \"LmhlYWRlckNvbnRhaW5lciB7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBkaXNwbGF5OiBmbGV4OwogIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgZ2FwOiBjYWxjKHZhcigtLWJwLXN1cmZhY2Utc3BhY2luZykgKiAxMCk7Cn0KCi5oZWFkZXIgewogIG1hcmdpbjogMDsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCi5sb2dvcyB7CiAgZGlzcGxheTogZmxleDsKICBnYXA6IGNhbGModmFyKC0tYnAtc3VyZmFjZS1zcGFjaW5nKSAqIDgpOwp9CgoubG9nbyB7CiAgaGVpZ2h0OiA0OHB4OwogIHRyYW5zaXRpb246IGZpbHRlciAzMDBtczsKICB3aWxsLWNoYW5nZTogZmlsdGVyOwp9CgoubG9nbzpob3ZlciB7CiAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAgMmVtICM2NDZjZmZhYSk7Cn0K\"\n}], [\"src/components/Header.tsx\", {\n type: \"raw\",\n body: `import palantir from \"/palantir.svg\";\nimport react from \"/react.svg\";\n\nimport { H2, Link } from \"@blueprintjs/core\";\nimport React from \"react\";\nimport css from \"./Header.module.css\";\n\nfunction Header(): React.ReactElement {\n return (\n <header className={css.headerContainer}>\n <div className={css.logos}>\n <Link\n href=\"https://www.palantir.com/docs/foundry/ontology-sdk/overview/\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <img src={palantir} className={css.logo} alt=\"Palantir logo\" />\n </Link>\n <Link href=\"https://react.dev\" target=\"_blank\" rel=\"noreferrer\">\n <img src={react} className={css.logo} alt=\"React logo\" />\n </Link>\n </div>\n <H2 className={css.header}>Build your React application with Foundry!</H2>\n </header>\n );\n}\n\nexport default Header;\n`\n}], [\"src/components/Loading.tsx\", {\n type: \"raw\",\n body: `import React from \"react\";\n\nfunction Loading(): React.ReactElement {\n return (\n <div style={{ padding: \"2rem\", textAlign: \"center\", color: \"#5f6b7c\" }}>\n Loading...\n </div>\n );\n}\n\nexport default Loading;\n`\n}], [\"src/components/NextSteps.module.css\", {\n \"type\": \"base64\",\n \"body\": \"Lm5leHRTdGVwcyB7CiAgZGlzcGxheTogZmxleDsKICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogIGdhcDogY2FsYyh2YXIoLS1icC1zdXJmYWNlLXNwYWNpbmcpICogNCk7Cn0KCi5uZXh0U3RlcHNIZWFkZXIgewogIGFsaWduLXNlbGY6IGJhc2VsaW5lOwogIGZvbnQtd2VpZ2h0OiA2MDA7CiAgbWFyZ2luOiAwOwp9CgoubmV4dFN0ZXAgewogIGJvcmRlcjogMXB4IHNvbGlkICMxMTE0MTgyNjsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1icC1zdXJmYWNlLWJvcmRlci1yYWRpdXMpOwogIGRpc3BsYXk6IGZsZXg7CiAgZ2FwOiBjYWxjKHZhcigtLWJwLXN1cmZhY2Utc3BhY2luZykgKiAzKTsKICBwYWRkaW5nOiBjYWxjKHZhcigtLWJwLXN1cmZhY2Utc3BhY2luZykgKiA0KTsKfQoKLm5leHRTdGVwQ29udGVudCB7CiAgZGlzcGxheTogZmxleDsKICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogIGdhcDogdmFyKC0tYnAtc3VyZmFjZS1zcGFjaW5nKTsKICB0ZXh0LWFsaWduOiBsZWZ0Owp9CgoudGl0bGUgewogIGZvbnQtd2VpZ2h0OiA2MDA7CiAgbWFyZ2luOiAwOwp9Cgouc3VidGl0bGUgewogIGNvbG9yOiB2YXIoLS1icC10eXBvZ3JhcGh5LWNvbG9yLW11dGVkKTsKfQoKLmljb24gewogIGJhY2tncm91bmQtY29sb3I6IG9rbGNoKGZyb20gdmFyKC0tYnAtaW50ZW50LWRlZmF1bHQtcmVzdCkgbCBjIGggLyAxNSUpOwogIGJvcmRlcjogdmFyKC0tYnAtc3VyZmFjZS1ib3JkZXItd2lkdGgpIHNvbGlkCiAgICB2YXIoLS1icC1zdXJmYWNlLWJvcmRlci1jb2xvci1kZWZhdWx0KTsKICBib3JkZXItcmFkaXVzOiAzMHB4OwogIGNvbG9yOiB2YXIoLS1icC1pbnRlbnQtZGVmYXVsdC1yZXN0KTsKICBoZWlnaHQ6IDM0cHg7CiAgcGFkZGluZzogY2FsYyh2YXIoLS1icC1zdXJmYWNlLXNwYWNpbmcpICogMik7Cn0K\"\n}], [\"src/components/NextSteps.tsx.hbs\", {\n type: \"raw\",\n body: `import { Code, H5, H6, Icon, Link, Text } from \"@blueprintjs/core\";\nimport { type IconName } from \"@blueprintjs/icons\";\nimport React from \"react\";\nimport css from \"./NextSteps.module.css\";\n\nconst STEPS: INextStep[] = [\n {{^if osdkPackage}}\n {\n icon: \"cube\",\n title: \"Configure your Ontology and Platform SDKs\",\n subtitle: (\n <span>\n Use the Ontology SDK to interact with your Ontology and the Platform SDK\n to access Foundry APIs. Configure your SDKs from the{\" \"}\n <strong>Ontology SDK</strong> and <strong>Platform SDK</strong> tabs in\n Developer Console.\n </span>\n ),\n },\n {{/if}}\n {{^if applicationUrl}}\n {\n icon: \"cloud\",\n title: \"Request a subdomain to host your application with Foundry\",\n subtitle: (\n <span>\n Register a subdomain for your website on the{\" \"}\n <strong>Website hosting</strong> tab in Developer Console. Then, add\n this subdomain to your redirect URLs on the{\" \"}\n <strong>OAuth & scopes</strong> tab and update your{\" \"}\n <Code>.env.production</Code> file.\n </span>\n ),\n },\n {{/if}}\n {\n icon: \"rocket-slant\",\n title: \"Deploy your application\",\n subtitle: (\n <span>\n To deploy a new version of your application, tag a new version of your\n repository or use the command line to run{\" \"}\n <Code>npx @osdk/cli@latest site deploy</Code>.{\" \"}\n <Link\n href=\"https://www.npmjs.com/package/@osdk/cli\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n Learn more.\n </Link>\n </span>\n ),\n },\n];\n\nfunction NextSteps(): React.ReactElement {\n return (\n <div className={css.nextSteps}>\n <H5 className={css.nextStepsHeader}>Next steps</H5>\n {STEPS.map((step) => (\n <NextStep\n key={step.title}\n icon={step.icon}\n title={step.title}\n subtitle={step.subtitle}\n />\n ))}\n </div>\n );\n}\n\ninterface INextStep {\n icon: IconName;\n title: string;\n subtitle: React.ReactElement;\n}\n\nfunction NextStep({ icon, title, subtitle }: INextStep): React.ReactElement {\n return (\n <div className={css.nextStep}>\n <div className={css.icon}>\n <Icon icon={icon} aria-label={icon} />\n </div>\n <div className={css.nextStepContent}>\n <H6 className={css.title}>{title}</H6>\n <Text className={css.subtitle}>{subtitle}</Text>\n </div>\n </div>\n );\n}\n\nexport default NextSteps;\n`\n}], [\"src/components/Osdk.module.osdk.css\", {\n \"type\": \"base64\",\n \"body\": \"Lm9zZGsgewogIGFsaWduLXNlbGY6IGJhc2VsaW5lOwogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgZGlzcGxheTogZmxleDsKICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgbWF4LXdpZHRoOiA4MDBweDsKICB3aWR0aDogMTAwJTsKfQo=\"\n}], [\"src/components/Osdk.tsx.osdk.hbs\", {\n type: \"raw\",\n body: `import { AnchorButton, Icon, Tag } from \"@blueprintjs/core\";\nimport React from \"react\";\nimport css from \"./Osdk.module.css\";\n\nconst DOCUMENTATION_URL =\n \"{{foundryUrl}}/workspace/developer-console/app/{{application}}/docs/guide/loading-data?language=typescript\";\n\nfunction Osdk(): React.ReactElement {\n return (\n <div className={css.osdk}>\n <div>\n <span>OSDK: </span>\n <Tag minimal={true}>{{osdkPackage}}</Tag>\n </div>\n <AnchorButton\n href={DOCUMENTATION_URL}\n target=\"_blank\"\n rel=\"noreferrer\"\n variant=\"minimal\"\n icon={<Icon icon=\"book\" aria-label=\"Book icon\"></Icon>}\n >\n View documentation\n </AnchorButton>\n </div>\n );\n}\n\nexport default Osdk;\n`\n}], [\"src/env.test.ts\", {\n \"type\": \"base64\",\n \"body\": \"aW1wb3J0IHsgbG9hZEVudiB9IGZyb20gInZpdGUiOwppbXBvcnQgeyBleHBlY3QsIHRlc3QgfSBmcm9tICJ2aXRlc3QiOwoKY29uc3QgRU5WX1ZBUlMgPSBbCiAgIlZJVEVfRk9VTkRSWV9BUElfVVJMIiwKICAiVklURV9GT1VORFJZX0NMSUVOVF9JRCIsCiAgIlZJVEVfRk9VTkRSWV9SRURJUkVDVF9VUkwiLApdOwoKZm9yIChjb25zdCBlbnZWYXIgb2YgRU5WX1ZBUlMpIHsKICB0ZXN0LnNraXBJZihwcm9jZXNzLmVudi5WRVJJRllfRU5WX1BST0RVQ1RJT04gIT09ICJ0cnVlIikoCiAgICBgcHJvZHVjdGlvbiBlbnYgc2hvdWxkIGNvbnRhaW4gJHtlbnZWYXJ9YCwKICAgICgpID0+IHsKICAgICAgY29uc3QgZW52ID0gbG9hZEVudigicHJvZHVjdGlvbiIsIHByb2Nlc3MuY3dkKCkpOwogICAgICBleHBlY3QoZW52W2VudlZhcl0sIGAke2VudlZhcn0gc2hvdWxkIGJlIGRlZmluZWRgKS50b0JlRGVmaW5lZCgpOwogICAgICBleHBlY3QoCiAgICAgICAgZW52W2VudlZhcl0sCiAgICAgICAgYCR7ZW52VmFyfSBzaG91bGQgbm90IGNvbnRhaW4gcGxhY2Vob2xkZXIgdmFsdWVgLAogICAgICApLm5vdC50b01hdGNoKC88Lio+Lyk7CiAgICB9LAogICk7Cn0K\"\n}], [\"src/index.css\", {\n \"type\": \"base64\",\n \"body\": \"LyogQmx1ZXByaW50SlMgKi8KQGltcG9ydCAibm9ybWFsaXplLmNzcyI7CkBpbXBvcnQgIkBibHVlcHJpbnRqcy9jb3JlL2xpYi9jc3MvYmx1ZXByaW50LmNzcyI7CkBpbXBvcnQgIkBibHVlcHJpbnRqcy9pY29ucy9saWIvY3NzL2JsdWVwcmludC1pY29ucy5jc3MiOwoKOnJvb3QgewogIGZvbnQtZmFtaWx5OgogICAgIlNvdXJjZSBTYW5zIFBybyIsIHN5c3RlbS11aSwgQXZlbmlyLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOwogIGZvbnQtc3ludGhlc2lzOiBub25lOwogIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7CiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsKfQoKI3Jvb3QtY29udGFpbmVyIHsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGRpc3BsYXk6IGZsZXg7CiAgZmxleDogMTsKfQoKI3Jvb3QgewogIG1hcmdpbjogMCBhdXRvOwogIG1heC13aWR0aDogMTI4MHB4OwogIHBhZGRpbmc6IGNhbGModmFyKC0tYnAtc3VyZmFjZS1zcGFjaW5nKSAqIDgpOwp9Cgpib2R5IHsKICBkaXNwbGF5OiBmbGV4OwogIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgbWFyZ2luOiAwOwogIG1pbi1oZWlnaHQ6IDEwMHZoOwp9Cg==\"\n}], [\"src/main.tsx.hbs\", {\n type: \"raw\",\n body: `import { Suspense } from \"react\";\nimport ReactDOM from \"react-dom/client\";\nimport { RouterProvider } from \"react-router-dom\";\n{{#if osdkPackage}}\nimport { OsdkProvider } from \"@osdk/react\";\nimport client from \"@/client\";\n{{/if}}\nimport ErrorBoundary from \"@/components/ErrorBoundary\";\nimport Loading from \"@/components/Loading\";\nimport { router } from \"@/router\";\nimport \"./index.css\";\n\nconst rootElement = document.getElementById(\"root\");\nif (!rootElement) {\n throw new Error(\"Root element not found\");\n}\n\nReactDOM.createRoot(rootElement).render(\n <ErrorBoundary>\n <Suspense fallback={<Loading />}>\n {{#if osdkPackage}}\n <OsdkProvider client={client}>\n <RouterProvider router={router} />\n </OsdkProvider>\n {{else}}\n <RouterProvider router={router} />\n {{/if}}\n </Suspense>\n </ErrorBoundary>,\n);\n`\n}], [\"src/router.tsx\", {\n type: \"raw\",\n body: `import AuthCallback from \"@/AuthCallback\";\nimport Home from \"@/Home\";\nimport { createBrowserRouter } from \"react-router-dom\";\n\nexport const router = createBrowserRouter(\n [\n {\n path: \"/\",\n element: <Home />,\n },\n {\n // This is the route defined in your application's redirect URL\n path: \"/auth/callback\",\n element: <AuthCallback />,\n },\n ],\n { basename: import.meta.env.BASE_URL },\n);\n`\n}], [\"src/vite-env.d.ts\", {\n \"type\": \"base64\",\n \"body\": \"Ly8vIDxyZWZlcmVuY2UgdHlwZXM9InZpdGUvY2xpZW50IiAvPgo=\"\n}], [\"tsconfig.json\", {\n \"type\": \"base64\",\n \"body\": \"ewogICJjb21waWxlck9wdGlvbnMiOiB7CiAgICAidGFyZ2V0IjogIkVTMjAyMCIsCiAgICAidXNlRGVmaW5lRm9yQ2xhc3NGaWVsZHMiOiB0cnVlLAogICAgImxpYiI6IFsiRVMyMDIwIiwgIkRPTSIsICJET00uSXRlcmFibGUiXSwKICAgICJtb2R1bGUiOiAiRVNOZXh0IiwKICAgICJza2lwTGliQ2hlY2siOiB0cnVlLAoKICAgIC8qIEJ1bmRsZXIgbW9kZSAqLwogICAgIm1vZHVsZVJlc29sdXRpb24iOiAiYnVuZGxlciIsCiAgICAiYWxsb3dJbXBvcnRpbmdUc0V4dGVuc2lvbnMiOiB0cnVlLAogICAgInJlc29sdmVKc29uTW9kdWxlIjogdHJ1ZSwKICAgICJpc29sYXRlZE1vZHVsZXMiOiB0cnVlLAogICAgIm5vRW1pdCI6IHRydWUsCiAgICAianN4IjogInJlYWN0LWpzeCIsCgogICAgLyogTGludGluZyAqLwogICAgInN0cmljdCI6IHRydWUsCiAgICAibm9VbnVzZWRMb2NhbHMiOiB0cnVlLAogICAgIm5vVW51c2VkUGFyYW1ldGVycyI6IHRydWUsCiAgICAibm9GYWxsdGhyb3VnaENhc2VzSW5Td2l0Y2giOiB0cnVlLAoKICAgIC8qIFBhdGggYWxpYXNlcyAqLwogICAgImJhc2VVcmwiOiAiLiIsCiAgICAicGF0aHMiOiB7CiAgICAgICJALyoiOiBbIi4vc3JjLyoiXQogICAgfQogIH0sCiAgImluY2x1ZGUiOiBbInNyYyJdLAogICJyZWZlcmVuY2VzIjogW3sgInBhdGgiOiAiLi90c2NvbmZpZy5ub2RlLmpzb24iIH1dCn0K\"\n}], [\"tsconfig.node.json\", {\n \"type\": \"base64\",\n \"body\": \"ewogICJjb21waWxlck9wdGlvbnMiOiB7CiAgICAiY29tcG9zaXRlIjogdHJ1ZSwKICAgICJza2lwTGliQ2hlY2siOiB0cnVlLAogICAgIm1vZHVsZSI6ICJFU05leHQiLAogICAgIm1vZHVsZVJlc29sdXRpb24iOiAiYnVuZGxlciIsCiAgICAiYWxsb3dTeW50aGV0aWNEZWZhdWx0SW1wb3J0cyI6IHRydWUKICB9LAogICJpbmNsdWRlIjogWyJ2aXRlLmNvbmZpZy50cyJdCn0K\"\n}], [\"vite.config.ts.hbs\", {\n type: \"raw\",\n body: `import path from \"node:path\";\nimport react from \"@vitejs/plugin-react\";\nimport { defineConfig } from \"vite\";\n\n// https://vitejs.dev/config/\nexport default defineConfig(({ mode }) => { \n return {\n plugins: [react()],\n resolve: {\n alias: {\n \"@\": path.resolve(__dirname, \"./src\"),\n },\n },\n server: {\n port: 8080,\n {{#if corsProxy}}\n proxy: {\n \"^(/multipass/api|/api)\": {\n target: \"{{foundryUrl}}\",\n changeOrigin: true,\n secure: true,\n },\n },\n {{/if}}\n },\n define: {\n \"process.env.NODE_ENV\": JSON.stringify(mode),\n },\n };\n});\n`\n}]]);"]}
|
package/build/esm/index.js
CHANGED
|
@@ -310,7 +310,7 @@ var TEMPLATES = [
|
|
|
310
310
|
hidden: false,
|
|
311
311
|
files: {
|
|
312
312
|
"1.x": getPackageFiles(import('./esm-KEOIKT62.js')),
|
|
313
|
-
"2.x": getPackageFiles(import('./esm-
|
|
313
|
+
"2.x": getPackageFiles(import('./esm-UDGDOKSV.js'))
|
|
314
314
|
}
|
|
315
315
|
},
|
|
316
316
|
// Expo
|
|
@@ -575,7 +575,7 @@ async function run({
|
|
|
575
575
|
cwd: fileURLToPath(import.meta.url)
|
|
576
576
|
});
|
|
577
577
|
ourPackageJsonPath ? JSON.parse(fs2.readFileSync(ourPackageJsonPath, "utf-8")).version : void 0;
|
|
578
|
-
const clientVersion = "2.12.
|
|
578
|
+
const clientVersion = "2.12.1-main-e2bad8ff54819e9aa03e4db6058775a0a68e0432";
|
|
579
579
|
const templateContext = {
|
|
580
580
|
application,
|
|
581
581
|
applicationUrl,
|
|
@@ -671,7 +671,7 @@ async function run({
|
|
|
671
671
|
|
|
672
672
|
// src/cli.ts
|
|
673
673
|
async function cli(args = process.argv) {
|
|
674
|
-
const base = yargs(hideBin(args)).version("2.12.
|
|
674
|
+
const base = yargs(hideBin(args)).version("2.12.1-main-e2bad8ff54819e9aa03e4db6058775a0a68e0432").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", {
|
|
675
675
|
type: "string",
|
|
676
676
|
describe: "Project name to create"
|
|
677
677
|
}).option("overwrite", {
|
package/build/esm/index.js.map
CHANGED
|
@@ -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/promptOntologyAndOsdkPackageAndOsdkRegistryUrl.ts","../../src/prompts/promptOverwrite.ts","../../src/prompts/promptProject.ts","../../src/prompts/promptScopes.ts","../../src/prompts/promptSdkVersion.ts","../../src/getPackageFiles.ts","../../src/generatedNoCheck/templates.ts","../../src/prompts/promptTemplate.ts","../../src/generate/generateEnv.ts","../../src/generate/generateFoundryConfigJson.ts","../../src/generate/generateNpmRc.ts","../../src/run.ts","../../src/cli.ts"],"names":["defaultConsola","fs","path","sdkVersion","template","yargs"],"mappings":"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","file":"index.js","sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola as defaultConsola, createConsola } from \"consola\";\n\n// https://github.com/unjs/consola?tab=readme-ov-file#await-promptmessage--type-cancel-\nconst cancelSymbol = Symbol.for(\"cancel\");\nexport const consola = createConsola({\n async prompt(message, opts) {\n const response = await defaultConsola.prompt(message, {\n ...opts,\n cancel: opts?.cancel ?? \"symbol\"\n });\n if (response === cancelSymbol) {\n defaultConsola.fail(\"Operation cancelled\");\n process.exit(0);\n }\n return response;\n }\n});","/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { colorize } from \"consola/utils\";\nexport function green(text) {\n return colorize(\"green\", text);\n}\nexport function italic(text) {\n return colorize(\"italic\", text);\n}","/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola } from \"../consola.js\";\nimport { italic } from \"../highlight.js\";\nexport async function promptApplicationRid({\n application\n}) {\n while (application == null || !/^ri\\.third-party-applications\\.[^.]+\\.application\\.[^.]+$/.test(application)) {\n if (application != null) {\n consola.fail(\"Please enter a valid application resource identifier (rid)\");\n }\n application = await consola.prompt(`Enter the application resource identifier (rid) for your application from Developer Console:\\n${italic(\"(Example: ri.third-party-applications.main.application.1c66b352-4e00-40d2-995d-061c9d533ace)\")}`, {\n type: \"text\"\n });\n }\n return application;\n}","/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola } from \"../consola.js\";\nimport { italic } from \"../highlight.js\";\nexport async function promptApplicationUrl({\n skipApplicationUrl,\n applicationUrl\n}) {\n if (skipApplicationUrl) {\n return undefined;\n }\n if (applicationUrl == null) {\n const skip = await consola.prompt(`Do you know the URL your production application will be hosted on? This is required to create a production build of your application with the correct OAuth redirect URL.`, {\n type: \"select\",\n options: [{\n label: \"Yes, let me fill it here\",\n value: \"yes\"\n }, {\n label: \"No, I will fill it in later following the instructions in the generated README\",\n value: \"no\"\n }]\n });\n if (skip === \"no\") {\n return undefined;\n }\n }\n while (applicationUrl == null || !/^https?:\\/\\//.test(applicationUrl)) {\n if (applicationUrl != null) {\n consola.fail(\"Please enter a valid application URL\");\n }\n applicationUrl = await consola.prompt(`Enter the URL your production application will be hosted on:\\n${italic(\"(Example: https://myapp.example.palantirfoundry.com)\")}`, {\n type: \"text\"\n });\n }\n return applicationUrl.replace(/\\/$/, \"\");\n}","/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola } from \"../consola.js\";\nimport { italic } from \"../highlight.js\";\nexport async function promptClientId({\n clientId\n}) {\n while (clientId == null || !/^[0-9a-f]+$/.test(clientId)) {\n if (clientId != null) {\n consola.fail(\"Please enter a valid OAuth client ID\");\n }\n clientId = await consola.prompt(`Enter the OAuth client ID for your application from Developer Console:\\n${italic(\"(Example: 2650385ab6c5e0df3b44aff776b00a42)\")}`, {\n type: \"text\"\n });\n }\n return clientId;\n}","/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola } from \"../consola.js\";\nimport { italic } from \"../highlight.js\";\nexport async function promptCorsProxy({\n corsProxy\n}) {\n if (corsProxy != null) {\n return corsProxy;\n }\n return consola.prompt(`Include a CORS proxy for Foundry API requests during local development?\\n${italic(\"This is required if your enrollment has not allowed localhost for CORS.\")}`, {\n type: \"confirm\",\n initial: false\n });\n}","/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola } from \"../consola.js\";\nimport { italic } from \"../highlight.js\";\nexport async function promptFoundryUrl({\n foundryUrl\n}) {\n while (foundryUrl == null || !foundryUrl.startsWith(\"https://\")) {\n if (foundryUrl != null) {\n consola.fail(\"Please enter a valid Foundry URL\");\n }\n foundryUrl = await consola.prompt(`Enter the URL for your Foundry stack:\\n${italic(\"(Example: https://example.palantirfoundry.com)\")}`, {\n type: \"text\"\n });\n }\n return foundryUrl.replace(/\\/$/, \"\");\n}","/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola } from \"../consola.js\";\nimport { italic } from \"../highlight.js\";\nexport async function promptOntologyAndOsdkPackageAndOsdkRegistryUrl({\n ontology,\n osdkPackage,\n osdkRegistryUrl,\n skipOsdk,\n sdkVersion\n}) {\n if (skipOsdk) {\n return {};\n }\n if (sdkVersion !== \"1.x\" && osdkPackage == null && ontology == null && osdkRegistryUrl == null) {\n const skip = await consola.prompt(\"Will you be using an OSDK in your application?\", {\n type: \"select\",\n options: [{\n label: \"Yes, I will be using an OSDK\",\n value: \"yes\"\n }, {\n label: \"No, I will only be using Platform APIs\",\n value: \"no\"\n }]\n });\n if (skip === \"no\") {\n return {};\n }\n }\n while (ontology == null || !/^ri\\.ontology\\.[^.]+\\.ontology\\.[^.]+$/.test(ontology)) {\n if (ontology != null) {\n consola.fail(\"Please enter a valid Ontology resource identifier (rid)\");\n }\n ontology = await consola.prompt(`Enter the Ontology resource identifier (rid) associated with your Developer Console:\\n${italic(\"(Example: ri.ontology.main.ontology.1df1ce4c-f9d2-0f78-a316-287f6ac80bb2)\")}`, {\n type: \"text\"\n });\n }\n while (osdkPackage == null || !/^@[a-z0-9-]+\\/sdk$/.test(osdkPackage)) {\n if (osdkPackage != null) {\n consola.fail(\"Please enter a valid OSDK package name\");\n }\n osdkPackage = await consola.prompt(`Enter the OSDK package name for your application from Developer Console:\\n${italic(\"(Example: @my-app/sdk)\")}`, {\n type: \"text\"\n });\n }\n while (osdkRegistryUrl == null || !/^https:\\/\\/[^/]+\\/artifacts\\/api\\/repositories\\/ri\\.artifacts\\.[^/]+\\/contents\\/release\\/npm\\/?$/.test(osdkRegistryUrl)) {\n if (osdkRegistryUrl != null) {\n consola.fail(\"Please enter a valid NPM registry URL to install your OSDK package\");\n }\n osdkRegistryUrl = await consola.prompt(`Enter the NPM registry URL to install your OSDK package from Developer Console:\\n${italic(\"(Example: https://example.palantirfoundry.com/artifacts/api/repositories/ri.artifacts.main.repository.a4a7fe1c-486f-4226-b706-7b90005f527d/contents/release/npm)\")}`, {\n type: \"text\"\n });\n }\n return {\n ontology,\n osdkPackage,\n osdkRegistryUrl: osdkRegistryUrl.replace(/\\/$/, \"\")\n };\n}","/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { consola } from \"../consola.js\";\nimport { green } from \"../highlight.js\";\nexport async function promptOverwrite({\n project,\n overwrite\n}) {\n if (overwrite != null) {\n return overwrite;\n }\n if (!fs.existsSync(path.join(process.cwd(), project))) {\n return true;\n }\n const result = await consola.prompt(`The directory ${green(project)} already exists do you want to overwrite or ignore it?`, {\n type: \"select\",\n options: [{\n label: \"Remove existing files and continue\",\n value: \"overwrite\"\n }, {\n label: \"Ignore files and continue\",\n value: \"ignore\"\n }, {\n label: \"Cancel\",\n value: \"cancel\"\n }]\n });\n switch (result) {\n case \"overwrite\":\n return true;\n case \"ignore\":\n return false;\n case \"cancel\":\n consola.fail(\"Operation cancelled\");\n process.exit(0);\n }\n}","/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola } from \"../consola.js\";\nexport async function promptProject({\n project\n}) {\n while (project == null || !/^[a-zA-Z0-9-_]+$/.test(project)) {\n if (project != null) {\n consola.fail(\"Project name can only contain alphanumeric characters, hyphens and underscores\");\n }\n project = await consola.prompt(\"Project name:\", {\n type: \"text\",\n placeholder: \"my-osdk-app\",\n default: \"my-osdk-app\"\n });\n }\n return project;\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola } from \"../consola.js\";\nconst scopeNameRegex = /^[a-zA-Z-_:]+$/;\nexport async function promptScopes({\n scopes\n}) {\n while (true) {\n if (scopes != null) {\n const invalidScopes = scopes.filter(scope => !scopeNameRegex.test(scope));\n const allValidScopes = invalidScopes.length === 0;\n if (allValidScopes) {\n break;\n }\n const joinedInvalidScopes = invalidScopes.join(\", \");\n consola.fail(`Scopes [ ${joinedInvalidScopes} ] are invalid. Scope names can only contain letters, hyphens, underscores, and colons`);\n }\n const stringScopes = await consola.prompt(\"Enter the scopes to request during OAuth:\", {\n type: \"text\",\n placeholder: \"api:read-data api:write-data api:use-ontologies-read api:use-ontologies-write\",\n default: \"api:read-data api:write-data api:use-ontologies-read api:use-ontologies-write\"\n });\n scopes = stringScopes.split(\" \");\n }\n return deduplicateScopes(scopes);\n}\n\n// Preserving the originally specified scope order\nfunction deduplicateScopes(scopes) {\n const dedupedScopes = [];\n const seen = new Set();\n for (const scope of scopes) {\n if (seen.has(scope)) {\n continue;\n }\n dedupedScopes.push(scope);\n seen.add(scope);\n }\n return dedupedScopes;\n}","/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola } from \"../consola.js\";\nexport async function promptSdkVersion({\n sdkVersion,\n template\n}) {\n if (sdkVersion == null) {\n // Default to the latest discovered version for the template\n return Object.keys(template.files).at(-1);\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 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function generateEnvDevelopment({\n envPrefix,\n foundryUrl,\n clientId,\n corsProxy,\n ontology\n}) {\n const foundryApiUrl = corsProxy ? \"http://localhost:8080\" : foundryUrl;\n const applicationUrl = \"http://localhost:8080\";\n const ontologyEnvSection = ontology != null ? `\n\n# This Ontology RID must match the Ontology RID your Developer Console is associated with.\n# You can check the Ontology on the \"Ontology SDK\" tab of Developer Console.\n# It typically does not need to be changed.\n\n${envPrefix}FOUNDRY_ONTOLOGY_RID=${ontology}\n` : \"\";\n return `# This env file is intended for developing on your local computer.\n# To set up development in Foundry's Code Workspaces, see .env.code-workspaces.\n# To deploy your application to production, see .env.production.\n# Note that .env.code-workspaces is only present for projects that were set up\n# using the \"Bootstrap in Foundry\" option in Developer Console.\n\n\n# This URL is the URL your users will be redirected back to after signing in.\n# This URL must exactly match one of the URLs listed in the \"OAuth & scopes\"\n# page of Developer Console.\n#\n# If your application in development is not hosted on port 8080, you will need\n# to change this URL here and in Developer Console.\n\n${envPrefix}FOUNDRY_REDIRECT_URL=${applicationUrl}/auth/callback\n\n\n# This URL is the Foundry host that your OSDK will use. It typically does not\n# need to be changed.\n\n${envPrefix}FOUNDRY_API_URL=${foundryApiUrl}\n\n\n# This client ID must match the client ID given on the \"OAuth & scopes\" page of\n# Developer Console. It typically does not need to be changed.\n\n${envPrefix}FOUNDRY_CLIENT_ID=${clientId}\n${ontologyEnvSection}`;\n}\nexport function generateEnvProduction({\n envPrefix,\n foundryUrl,\n applicationUrl,\n clientId,\n ontology\n}) {\n const applicationUrlOrDefault = applicationUrl ?? \"<Fill in the domain at which you deploy your application>\";\n const ontologyEnvSection = ontology != null ? `\n\n# This Ontology RID must match the Ontology RID your Developer Console is associated with.\n# You can check the Ontology on the \"Ontology SDK\" tab of Developer Console.\n# It typically does not need to be changed.\n\n${envPrefix}FOUNDRY_ONTOLOGY_RID=${ontology}\n` : \"\";\n return `# This env file is intended for deploying your application to production.\n# To set up development on your local computer, see .env.development.\n# To set up development in Foundry's Code Workspaces, see .env.code-workspaces.\n# Note that .env.code-workspaces is only present for projects that were set up\n# using the \"Bootstrap in Foundry\" option in Developer Console.\n\n\n# This URL is the URL your users will be redirected back to after signing in.\n# This URL must exactly match one of the URLs listed in the \"OAuth & scopes\"\n# page of Developer Console.\n#\n# If you change where your application is hosted, you will need to change this\n# URL here and in Developer Console.\n\n${applicationUrl == null ? \"# \" : \"\"}${envPrefix}FOUNDRY_REDIRECT_URL=${applicationUrlOrDefault}/auth/callback\n\n\n# This URL is the Foundry host that your OSDK will use. It typically does not\n# need to be changed.\n\n${envPrefix}FOUNDRY_API_URL=${foundryUrl}\n\n\n# This client ID must match the client ID given on the \"OAuth & scopes\" page of\n# Developer Console. It typically does not need to be changed.\n\n${envPrefix}FOUNDRY_CLIENT_ID=${clientId}\n${ontologyEnvSection}`;\n}","/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function generateFoundryConfigJson({\n foundryUrl,\n application,\n directory\n}) {\n return JSON.stringify({\n foundryUrl,\n site: {\n application,\n directory,\n autoVersion: {\n type: \"git-describe\",\n tagPrefix: \"\"\n }\n }\n }, null, 2) + \"\\n\";\n}","/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function generateNpmRc({\n foundryUrl,\n osdkPackage,\n osdkRegistryUrl\n}) {\n // pnpm requires a trailing slash in .npmrc\n // https://github.com/pnpm/pnpm/issues/5941\n const osdkRegistryUrlWithTrailingSlash = osdkRegistryUrl != null ? osdkRegistryUrl.endsWith(\"/\") ? osdkRegistryUrl : osdkRegistryUrl + \"/\" : null;\n const formattedFoundryUrl = foundryUrl.replace(/^https:\\/\\//, \"\").replace(/\\/$/, \"\");\n const artifactsApiUrl = formattedFoundryUrl + \"/artifacts/api/\";\n const packageScope = osdkPackage?.split(\"/\")[0];\n const credentialsLine = `//${artifactsApiUrl}:_authToken=\\${FOUNDRY_TOKEN}\\n`;\n const registryLine = packageScope != null && osdkRegistryUrlWithTrailingSlash != null ? `${packageScope}:registry=${osdkRegistryUrlWithTrailingSlash}\\n` : \"\";\n return credentialsLine + registryLine;\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { changeVersionPrefix } from \"@osdk/generator-utils\";\nimport { findUpSync } from \"find-up\";\nimport Handlebars from \"handlebars\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { consola } from \"./consola.js\";\nimport { generateEnvDevelopment, generateEnvProduction } from \"./generate/generateEnv.js\";\nimport { generateFoundryConfigJson } from \"./generate/generateFoundryConfigJson.js\";\nimport { generateNpmRc } from \"./generate/generateNpmRc.js\";\nimport { green } from \"./highlight.js\";\nexport async function run({\n project,\n overwrite,\n template,\n sdkVersion,\n foundryUrl,\n applicationUrl,\n application,\n ontology,\n clientId,\n osdkPackage,\n osdkRegistryUrl,\n corsProxy,\n scopes\n}) {\n consola.log(\"\");\n consola.start(`Creating project ${green(project)} using template ${green(template.id)}`);\n const cwd = process.cwd();\n const root = path.join(cwd, project);\n if (fs.existsSync(root)) {\n if (overwrite) {\n consola.info(`Overwriting existing project directory`);\n fs.rmSync(root, {\n recursive: true,\n force: true\n });\n fs.mkdirSync(root, {\n recursive: true\n });\n } else {\n consola.info(`Reusing existing project directory`);\n }\n } else {\n consola.info(`Creating project directory`);\n fs.mkdirSync(root, {\n recursive: true\n });\n }\n consola.info(`Copying files into project directory`);\n if (template.files[sdkVersion] == null) {\n throw new Error(`The ${template.label} template does not support a \"${sdkVersion}\" SDK version.`);\n }\n const files = await template.files[sdkVersion]();\n for (const [filePath, contents] of files) {\n const finalPath = path.join(root, filePath);\n const dirPath = path.dirname(finalPath);\n await fs.promises.mkdir(dirPath, {\n recursive: true\n });\n await fs.promises.writeFile(finalPath, Buffer.from(contents.body, contents.type === \"raw\" ? \"utf-8\" : \"base64\"));\n }\n const ourPackageJsonPath = findUpSync(\"package.json\", {\n cwd: fileURLToPath(import.meta.url)\n });\n const ourPackageJsonVersion = ourPackageJsonPath ? JSON.parse(fs.readFileSync(ourPackageJsonPath, \"utf-8\")).version : undefined;\n const clientVersion = process.env.PACKAGE_CLIENT_VERSION ?? ourPackageJsonVersion;\n if (clientVersion === undefined) {\n throw new Error(\"Could not determine current @osdk/client version\");\n }\n const templateContext = {\n application,\n applicationUrl,\n project,\n foundryUrl,\n osdkPackage,\n corsProxy,\n clientVersion: changeVersionPrefix(clientVersion, \"^\"),\n scopes\n };\n const processFiles = function (dir) {\n fs.readdirSync(dir).forEach(function (file) {\n let fullPath = dir + \"/\" + file;\n const stat = fs.statSync(fullPath);\n if (stat.isDirectory()) {\n processFiles(fullPath);\n return;\n }\n if (fullPath.endsWith(\"/_gitignore\")) {\n fs.renameSync(fullPath, fullPath.replace(/\\/_gitignore$/, \"/.gitignore\"));\n return;\n }\n\n // Files with the `.osdk` extension are only kept if the application uses an OSDK\n if (file.includes(\".osdk\")) {\n if (osdkPackage == null) {\n fs.rmSync(fullPath);\n return;\n } else {\n fs.renameSync(fullPath, fullPath.replace(\".osdk\", \"\"));\n fullPath = fullPath.replace(\".osdk\", \"\");\n }\n // Files with the `.psdk` extension are only kept if the application does not use an OSDK\n } else if (file.includes(\".psdk\")) {\n if (osdkPackage == null) {\n fs.renameSync(fullPath, fullPath.replace(\".psdk\", \"\"));\n fullPath = fullPath.replace(\".psdk\", \"\");\n } else {\n fs.rmSync(fullPath);\n return;\n }\n }\n if (!fullPath.endsWith(\".hbs\")) {\n return;\n }\n const templated = Handlebars.compile(fs.readFileSync(fullPath, \"utf-8\"))(templateContext);\n fs.writeFileSync(fullPath.replace(/.hbs$/, \"\"), templated);\n fs.rmSync(fullPath);\n });\n };\n processFiles(root);\n const npmRc = generateNpmRc({\n osdkPackage,\n osdkRegistryUrl,\n foundryUrl\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 { promptOntologyAndOsdkPackageAndOsdkRegistryUrl } from \"./prompts/promptOntologyAndOsdkPackageAndOsdkRegistryUrl.js\";\nimport { promptOverwrite } from \"./prompts/promptOverwrite.js\";\nimport { promptProject } from \"./prompts/promptProject.js\";\nimport { promptScopes } from \"./prompts/promptScopes.js\";\nimport { promptSdkVersion } from \"./prompts/promptSdkVersion.js\";\nimport { promptTemplate } from \"./prompts/promptTemplate.js\";\nimport { run } from \"./run.js\";\nexport async function cli(args = process.argv) {\n const base = yargs(hideBin(args)).version(process.env.PACKAGE_VERSION ?? \"\").wrap(Math.min(150, yargs().terminalWidth())).strict().help().command(\"$0 [project] [--<option>]\", \"Create a new OSDK application based on framework templates. Information may be provided through options to skip interactive prompts.\", yargs => yargs.positional(\"project\", {\n type: \"string\",\n describe: \"Project name to create\"\n }).option(\"overwrite\", {\n type: \"boolean\",\n describe: \"Overwrite project directory if already exists\"\n }).option(\"beta\", {\n type: \"boolean\",\n describe: \"Use templates compatible with the Beta version of the SDK\"\n }).option(\"template\", {\n type: \"string\",\n describe: \"Template name to use\"\n }).option(\"sdkVersion\", {\n type: \"string\",\n describe: \"The OSDK version to use\"\n }).option(\"foundryUrl\", {\n type: \"string\",\n describe: \"URL for the Foundry stack\"\n }).option(\"applicationUrl\", {\n type: \"string\",\n describe: \"URL the production application will be hosted on\",\n conflicts: \"skipApplicationUrl\"\n }).option(\"skipApplicationUrl\", {\n type: \"boolean\",\n describe: \"Skip filling in URL the production application will be hosted on\"\n }).option(\"application\", {\n type: \"string\",\n describe: \"Application resource identifier (rid)\"\n }).option(\"ontology\", {\n type: \"string\",\n describe: \"Ontology resource identifier (rid)\",\n conflicts: \"skipOsdk\"\n }).option(\"osdkPackage\", {\n type: \"string\",\n describe: \"OSDK package name for application\",\n conflicts: \"skipOsdk\"\n }).option(\"skipOsdk\", {\n type: \"boolean\",\n describe: \"Skip filling in OSDK options\"\n }).option(\"clientId\", {\n type: \"string\",\n describe: \"OAuth client ID for application\"\n }).option(\"osdkRegistryUrl\", {\n type: \"string\",\n describe: \"URL for NPM registry to install OSDK package\"\n }).option(\"corsProxy\", {\n type: \"boolean\",\n describe: \"Include a CORS proxy for Foundry API requests during local development\"\n }).option(\"scopes\", {\n type: \"string\",\n array: true,\n describe: \"List of client-side scopes to be used when creating a client\"\n }).check(argv => {\n if (argv.skipOsdk && (argv.sdkVersion == null || argv.sdkVersion.startsWith(\"1.\"))) {\n throw new Error(\"The --skipOsdk flag is only allowed when sdkVersion is 2.x. Please set --sdkVersion to 2.x or remove the --skipOsdk flag.\");\n }\n return true;\n }));\n const parsed = base.parseSync();\n const project = await promptProject(parsed);\n const overwrite = await promptOverwrite({\n ...parsed,\n project\n });\n const template = await promptTemplate(parsed);\n const sdkVersion = await promptSdkVersion({\n ...parsed,\n template\n });\n const foundryUrl = await promptFoundryUrl(parsed);\n const applicationUrl = await promptApplicationUrl(parsed);\n const application = await promptApplicationRid(parsed);\n const clientId = await promptClientId(parsed);\n const {\n osdkPackage,\n ontology,\n osdkRegistryUrl\n } = await promptOntologyAndOsdkPackageAndOsdkRegistryUrl({\n ...parsed,\n sdkVersion\n });\n const corsProxy = await promptCorsProxy(parsed);\n const scopes = await promptScopes(parsed);\n await run({\n project,\n overwrite,\n template,\n sdkVersion,\n foundryUrl,\n applicationUrl,\n application,\n clientId,\n osdkPackage,\n osdkRegistryUrl,\n corsProxy,\n scopes,\n ontology\n });\n}"]}
|
|
1
|
+
{"version":3,"sources":["../../src/consola.ts","../../src/highlight.ts","../../src/prompts/promptApplicationRid.ts","../../src/prompts/promptApplicationUrl.ts","../../src/prompts/promptClientId.ts","../../src/prompts/promptCorsProxy.ts","../../src/prompts/promptFoundryUrl.ts","../../src/prompts/promptOntologyAndOsdkPackageAndOsdkRegistryUrl.ts","../../src/prompts/promptOverwrite.ts","../../src/prompts/promptProject.ts","../../src/prompts/promptScopes.ts","../../src/prompts/promptSdkVersion.ts","../../src/getPackageFiles.ts","../../src/generatedNoCheck/templates.ts","../../src/prompts/promptTemplate.ts","../../src/generate/generateEnv.ts","../../src/generate/generateFoundryConfigJson.ts","../../src/generate/generateNpmRc.ts","../../src/run.ts","../../src/cli.ts"],"names":["defaultConsola","fs","path","sdkVersion","template","yargs"],"mappings":"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","file":"index.js","sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola as defaultConsola, createConsola } from \"consola\";\n\n// https://github.com/unjs/consola?tab=readme-ov-file#await-promptmessage--type-cancel-\nconst cancelSymbol = Symbol.for(\"cancel\");\nexport const consola = createConsola({\n async prompt(message, opts) {\n const response = await defaultConsola.prompt(message, {\n ...opts,\n cancel: opts?.cancel ?? \"symbol\"\n });\n if (response === cancelSymbol) {\n defaultConsola.fail(\"Operation cancelled\");\n process.exit(0);\n }\n return response;\n }\n});","/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { colorize } from \"consola/utils\";\nexport function green(text) {\n return colorize(\"green\", text);\n}\nexport function italic(text) {\n return colorize(\"italic\", text);\n}","/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola } from \"../consola.js\";\nimport { italic } from \"../highlight.js\";\nexport async function promptApplicationRid({\n application\n}) {\n while (application == null || !/^ri\\.third-party-applications\\.[^.]+\\.application\\.[^.]+$/.test(application)) {\n if (application != null) {\n consola.fail(\"Please enter a valid application resource identifier (rid)\");\n }\n application = await consola.prompt(`Enter the application resource identifier (rid) for your application from Developer Console:\\n${italic(\"(Example: ri.third-party-applications.main.application.1c66b352-4e00-40d2-995d-061c9d533ace)\")}`, {\n type: \"text\"\n });\n }\n return application;\n}","/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola } from \"../consola.js\";\nimport { italic } from \"../highlight.js\";\nexport async function promptApplicationUrl({\n skipApplicationUrl,\n applicationUrl\n}) {\n if (skipApplicationUrl) {\n return undefined;\n }\n if (applicationUrl == null) {\n const skip = await consola.prompt(`Do you know the URL your production application will be hosted on? This is required to create a production build of your application with the correct OAuth redirect URL.`, {\n type: \"select\",\n options: [{\n label: \"Yes, let me fill it here\",\n value: \"yes\"\n }, {\n label: \"No, I will fill it in later following the instructions in the generated README\",\n value: \"no\"\n }]\n });\n if (skip === \"no\") {\n return undefined;\n }\n }\n while (applicationUrl == null || !/^https?:\\/\\//.test(applicationUrl)) {\n if (applicationUrl != null) {\n consola.fail(\"Please enter a valid application URL\");\n }\n applicationUrl = await consola.prompt(`Enter the URL your production application will be hosted on:\\n${italic(\"(Example: https://myapp.example.palantirfoundry.com)\")}`, {\n type: \"text\"\n });\n }\n return applicationUrl.replace(/\\/$/, \"\");\n}","/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola } from \"../consola.js\";\nimport { italic } from \"../highlight.js\";\nexport async function promptClientId({\n clientId\n}) {\n while (clientId == null || !/^[0-9a-f]+$/.test(clientId)) {\n if (clientId != null) {\n consola.fail(\"Please enter a valid OAuth client ID\");\n }\n clientId = await consola.prompt(`Enter the OAuth client ID for your application from Developer Console:\\n${italic(\"(Example: 2650385ab6c5e0df3b44aff776b00a42)\")}`, {\n type: \"text\"\n });\n }\n return clientId;\n}","/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola } from \"../consola.js\";\nimport { italic } from \"../highlight.js\";\nexport async function promptCorsProxy({\n corsProxy\n}) {\n if (corsProxy != null) {\n return corsProxy;\n }\n return consola.prompt(`Include a CORS proxy for Foundry API requests during local development?\\n${italic(\"This is required if your enrollment has not allowed localhost for CORS.\")}`, {\n type: \"confirm\",\n initial: false\n });\n}","/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola } from \"../consola.js\";\nimport { italic } from \"../highlight.js\";\nexport async function promptFoundryUrl({\n foundryUrl\n}) {\n while (foundryUrl == null || !foundryUrl.startsWith(\"https://\")) {\n if (foundryUrl != null) {\n consola.fail(\"Please enter a valid Foundry URL\");\n }\n foundryUrl = await consola.prompt(`Enter the URL for your Foundry stack:\\n${italic(\"(Example: https://example.palantirfoundry.com)\")}`, {\n type: \"text\"\n });\n }\n return foundryUrl.replace(/\\/$/, \"\");\n}","/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola } from \"../consola.js\";\nimport { italic } from \"../highlight.js\";\nexport async function promptOntologyAndOsdkPackageAndOsdkRegistryUrl({\n ontology,\n osdkPackage,\n osdkRegistryUrl,\n skipOsdk,\n sdkVersion\n}) {\n if (skipOsdk) {\n return {};\n }\n if (sdkVersion !== \"1.x\" && osdkPackage == null && ontology == null && osdkRegistryUrl == null) {\n const skip = await consola.prompt(\"Will you be using an OSDK in your application?\", {\n type: \"select\",\n options: [{\n label: \"Yes, I will be using an OSDK\",\n value: \"yes\"\n }, {\n label: \"No, I will only be using Platform APIs\",\n value: \"no\"\n }]\n });\n if (skip === \"no\") {\n return {};\n }\n }\n while (ontology == null || !/^ri\\.ontology\\.[^.]+\\.ontology\\.[^.]+$/.test(ontology)) {\n if (ontology != null) {\n consola.fail(\"Please enter a valid Ontology resource identifier (rid)\");\n }\n ontology = await consola.prompt(`Enter the Ontology resource identifier (rid) associated with your Developer Console:\\n${italic(\"(Example: ri.ontology.main.ontology.1df1ce4c-f9d2-0f78-a316-287f6ac80bb2)\")}`, {\n type: \"text\"\n });\n }\n while (osdkPackage == null || !/^@[a-z0-9-]+\\/sdk$/.test(osdkPackage)) {\n if (osdkPackage != null) {\n consola.fail(\"Please enter a valid OSDK package name\");\n }\n osdkPackage = await consola.prompt(`Enter the OSDK package name for your application from Developer Console:\\n${italic(\"(Example: @my-app/sdk)\")}`, {\n type: \"text\"\n });\n }\n while (osdkRegistryUrl == null || !/^https:\\/\\/[^/]+\\/artifacts\\/api\\/repositories\\/ri\\.artifacts\\.[^/]+\\/contents\\/release\\/npm\\/?$/.test(osdkRegistryUrl)) {\n if (osdkRegistryUrl != null) {\n consola.fail(\"Please enter a valid NPM registry URL to install your OSDK package\");\n }\n osdkRegistryUrl = await consola.prompt(`Enter the NPM registry URL to install your OSDK package from Developer Console:\\n${italic(\"(Example: https://example.palantirfoundry.com/artifacts/api/repositories/ri.artifacts.main.repository.a4a7fe1c-486f-4226-b706-7b90005f527d/contents/release/npm)\")}`, {\n type: \"text\"\n });\n }\n return {\n ontology,\n osdkPackage,\n osdkRegistryUrl: osdkRegistryUrl.replace(/\\/$/, \"\")\n };\n}","/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { consola } from \"../consola.js\";\nimport { green } from \"../highlight.js\";\nexport async function promptOverwrite({\n project,\n overwrite\n}) {\n if (overwrite != null) {\n return overwrite;\n }\n if (!fs.existsSync(path.join(process.cwd(), project))) {\n return true;\n }\n const result = await consola.prompt(`The directory ${green(project)} already exists do you want to overwrite or ignore it?`, {\n type: \"select\",\n options: [{\n label: \"Remove existing files and continue\",\n value: \"overwrite\"\n }, {\n label: \"Ignore files and continue\",\n value: \"ignore\"\n }, {\n label: \"Cancel\",\n value: \"cancel\"\n }]\n });\n switch (result) {\n case \"overwrite\":\n return true;\n case \"ignore\":\n return false;\n case \"cancel\":\n consola.fail(\"Operation cancelled\");\n process.exit(0);\n }\n}","/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola } from \"../consola.js\";\nexport async function promptProject({\n project\n}) {\n while (project == null || !/^[a-zA-Z0-9-_]+$/.test(project)) {\n if (project != null) {\n consola.fail(\"Project name can only contain alphanumeric characters, hyphens and underscores\");\n }\n project = await consola.prompt(\"Project name:\", {\n type: \"text\",\n placeholder: \"my-osdk-app\",\n default: \"my-osdk-app\"\n });\n }\n return project;\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola } from \"../consola.js\";\nconst scopeNameRegex = /^[a-zA-Z-_:]+$/;\nexport async function promptScopes({\n scopes\n}) {\n while (true) {\n if (scopes != null) {\n const invalidScopes = scopes.filter(scope => !scopeNameRegex.test(scope));\n const allValidScopes = invalidScopes.length === 0;\n if (allValidScopes) {\n break;\n }\n const joinedInvalidScopes = invalidScopes.join(\", \");\n consola.fail(`Scopes [ ${joinedInvalidScopes} ] are invalid. Scope names can only contain letters, hyphens, underscores, and colons`);\n }\n const stringScopes = await consola.prompt(\"Enter the scopes to request during OAuth:\", {\n type: \"text\",\n placeholder: \"api:read-data api:write-data api:use-ontologies-read api:use-ontologies-write\",\n default: \"api:read-data api:write-data api:use-ontologies-read api:use-ontologies-write\"\n });\n scopes = stringScopes.split(\" \");\n }\n return deduplicateScopes(scopes);\n}\n\n// Preserving the originally specified scope order\nfunction deduplicateScopes(scopes) {\n const dedupedScopes = [];\n const seen = new Set();\n for (const scope of scopes) {\n if (seen.has(scope)) {\n continue;\n }\n dedupedScopes.push(scope);\n seen.add(scope);\n }\n return dedupedScopes;\n}","/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola } from \"../consola.js\";\nexport async function promptSdkVersion({\n sdkVersion,\n template\n}) {\n if (sdkVersion == null) {\n // Default to the latest discovered version for the template\n return Object.keys(template.files).at(-1);\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 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function generateEnvDevelopment({\n envPrefix,\n foundryUrl,\n clientId,\n corsProxy,\n ontology\n}) {\n const foundryApiUrl = corsProxy ? \"http://localhost:8080\" : foundryUrl;\n const applicationUrl = \"http://localhost:8080\";\n const ontologyEnvSection = ontology != null ? `\n\n# This Ontology RID must match the Ontology RID your Developer Console is associated with.\n# You can check the Ontology on the \"Ontology SDK\" tab of Developer Console.\n# It typically does not need to be changed.\n\n${envPrefix}FOUNDRY_ONTOLOGY_RID=${ontology}\n` : \"\";\n return `# This env file is intended for developing on your local computer.\n# To set up development in Foundry's Code Workspaces, see .env.code-workspaces.\n# To deploy your application to production, see .env.production.\n# Note that .env.code-workspaces is only present for projects that were set up\n# using the \"Bootstrap in Foundry\" option in Developer Console.\n\n\n# This URL is the URL your users will be redirected back to after signing in.\n# This URL must exactly match one of the URLs listed in the \"OAuth & scopes\"\n# page of Developer Console.\n#\n# If your application in development is not hosted on port 8080, you will need\n# to change this URL here and in Developer Console.\n\n${envPrefix}FOUNDRY_REDIRECT_URL=${applicationUrl}/auth/callback\n\n\n# This URL is the Foundry host that your OSDK will use. It typically does not\n# need to be changed.\n\n${envPrefix}FOUNDRY_API_URL=${foundryApiUrl}\n\n\n# This client ID must match the client ID given on the \"OAuth & scopes\" page of\n# Developer Console. It typically does not need to be changed.\n\n${envPrefix}FOUNDRY_CLIENT_ID=${clientId}\n${ontologyEnvSection}`;\n}\nexport function generateEnvProduction({\n envPrefix,\n foundryUrl,\n applicationUrl,\n clientId,\n ontology\n}) {\n const applicationUrlOrDefault = applicationUrl ?? \"<Fill in the domain at which you deploy your application>\";\n const ontologyEnvSection = ontology != null ? `\n\n# This Ontology RID must match the Ontology RID your Developer Console is associated with.\n# You can check the Ontology on the \"Ontology SDK\" tab of Developer Console.\n# It typically does not need to be changed.\n\n${envPrefix}FOUNDRY_ONTOLOGY_RID=${ontology}\n` : \"\";\n return `# This env file is intended for deploying your application to production.\n# To set up development on your local computer, see .env.development.\n# To set up development in Foundry's Code Workspaces, see .env.code-workspaces.\n# Note that .env.code-workspaces is only present for projects that were set up\n# using the \"Bootstrap in Foundry\" option in Developer Console.\n\n\n# This URL is the URL your users will be redirected back to after signing in.\n# This URL must exactly match one of the URLs listed in the \"OAuth & scopes\"\n# page of Developer Console.\n#\n# If you change where your application is hosted, you will need to change this\n# URL here and in Developer Console.\n\n${applicationUrl == null ? \"# \" : \"\"}${envPrefix}FOUNDRY_REDIRECT_URL=${applicationUrlOrDefault}/auth/callback\n\n\n# This URL is the Foundry host that your OSDK will use. It typically does not\n# need to be changed.\n\n${envPrefix}FOUNDRY_API_URL=${foundryUrl}\n\n\n# This client ID must match the client ID given on the \"OAuth & scopes\" page of\n# Developer Console. It typically does not need to be changed.\n\n${envPrefix}FOUNDRY_CLIENT_ID=${clientId}\n${ontologyEnvSection}`;\n}","/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function generateFoundryConfigJson({\n foundryUrl,\n application,\n directory\n}) {\n return JSON.stringify({\n foundryUrl,\n site: {\n application,\n directory,\n autoVersion: {\n type: \"git-describe\",\n tagPrefix: \"\"\n }\n }\n }, null, 2) + \"\\n\";\n}","/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function generateNpmRc({\n foundryUrl,\n osdkPackage,\n osdkRegistryUrl\n}) {\n // pnpm requires a trailing slash in .npmrc\n // https://github.com/pnpm/pnpm/issues/5941\n const osdkRegistryUrlWithTrailingSlash = osdkRegistryUrl != null ? osdkRegistryUrl.endsWith(\"/\") ? osdkRegistryUrl : osdkRegistryUrl + \"/\" : null;\n const formattedFoundryUrl = foundryUrl.replace(/^https:\\/\\//, \"\").replace(/\\/$/, \"\");\n const artifactsApiUrl = formattedFoundryUrl + \"/artifacts/api/\";\n const packageScope = osdkPackage?.split(\"/\")[0];\n const credentialsLine = `//${artifactsApiUrl}:_authToken=\\${FOUNDRY_TOKEN}\\n`;\n const registryLine = packageScope != null && osdkRegistryUrlWithTrailingSlash != null ? `${packageScope}:registry=${osdkRegistryUrlWithTrailingSlash}\\n` : \"\";\n return credentialsLine + registryLine;\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { changeVersionPrefix } from \"@osdk/generator-utils\";\nimport { findUpSync } from \"find-up\";\nimport Handlebars from \"handlebars\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { consola } from \"./consola.js\";\nimport { generateEnvDevelopment, generateEnvProduction } from \"./generate/generateEnv.js\";\nimport { generateFoundryConfigJson } from \"./generate/generateFoundryConfigJson.js\";\nimport { generateNpmRc } from \"./generate/generateNpmRc.js\";\nimport { green } from \"./highlight.js\";\nexport async function run({\n project,\n overwrite,\n template,\n sdkVersion,\n foundryUrl,\n applicationUrl,\n application,\n ontology,\n clientId,\n osdkPackage,\n osdkRegistryUrl,\n corsProxy,\n scopes\n}) {\n consola.log(\"\");\n consola.start(`Creating project ${green(project)} using template ${green(template.id)}`);\n const cwd = process.cwd();\n const root = path.join(cwd, project);\n if (fs.existsSync(root)) {\n if (overwrite) {\n consola.info(`Overwriting existing project directory`);\n fs.rmSync(root, {\n recursive: true,\n force: true\n });\n fs.mkdirSync(root, {\n recursive: true\n });\n } else {\n consola.info(`Reusing existing project directory`);\n }\n } else {\n consola.info(`Creating project directory`);\n fs.mkdirSync(root, {\n recursive: true\n });\n }\n consola.info(`Copying files into project directory`);\n if (template.files[sdkVersion] == null) {\n throw new Error(`The ${template.label} template does not support a \"${sdkVersion}\" SDK version.`);\n }\n const files = await template.files[sdkVersion]();\n for (const [filePath, contents] of files) {\n const finalPath = path.join(root, filePath);\n const dirPath = path.dirname(finalPath);\n await fs.promises.mkdir(dirPath, {\n recursive: true\n });\n await fs.promises.writeFile(finalPath, Buffer.from(contents.body, contents.type === \"raw\" ? \"utf-8\" : \"base64\"));\n }\n const ourPackageJsonPath = findUpSync(\"package.json\", {\n cwd: fileURLToPath(import.meta.url)\n });\n const ourPackageJsonVersion = ourPackageJsonPath ? JSON.parse(fs.readFileSync(ourPackageJsonPath, \"utf-8\")).version : undefined;\n const clientVersion = process.env.PACKAGE_CLIENT_VERSION ?? ourPackageJsonVersion;\n if (clientVersion === undefined) {\n throw new Error(\"Could not determine current @osdk/client version\");\n }\n const templateContext = {\n application,\n applicationUrl,\n project,\n foundryUrl,\n osdkPackage,\n corsProxy,\n clientVersion: changeVersionPrefix(clientVersion, \"^\"),\n scopes\n };\n const processFiles = function (dir) {\n fs.readdirSync(dir).forEach(function (file) {\n let fullPath = dir + \"/\" + file;\n const stat = fs.statSync(fullPath);\n if (stat.isDirectory()) {\n processFiles(fullPath);\n return;\n }\n if (fullPath.endsWith(\"/_gitignore\")) {\n fs.renameSync(fullPath, fullPath.replace(/\\/_gitignore$/, \"/.gitignore\"));\n return;\n }\n\n // Files with the `.osdk` extension are only kept if the application uses an OSDK\n if (file.includes(\".osdk\")) {\n if (osdkPackage == null) {\n fs.rmSync(fullPath);\n return;\n } else {\n fs.renameSync(fullPath, fullPath.replace(\".osdk\", \"\"));\n fullPath = fullPath.replace(\".osdk\", \"\");\n }\n // Files with the `.psdk` extension are only kept if the application does not use an OSDK\n } else if (file.includes(\".psdk\")) {\n if (osdkPackage == null) {\n fs.renameSync(fullPath, fullPath.replace(\".psdk\", \"\"));\n fullPath = fullPath.replace(\".psdk\", \"\");\n } else {\n fs.rmSync(fullPath);\n return;\n }\n }\n if (!fullPath.endsWith(\".hbs\")) {\n return;\n }\n const templated = Handlebars.compile(fs.readFileSync(fullPath, \"utf-8\"))(templateContext);\n fs.writeFileSync(fullPath.replace(/.hbs$/, \"\"), templated);\n fs.rmSync(fullPath);\n });\n };\n processFiles(root);\n const npmRc = generateNpmRc({\n osdkPackage,\n osdkRegistryUrl,\n foundryUrl\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 { promptOntologyAndOsdkPackageAndOsdkRegistryUrl } from \"./prompts/promptOntologyAndOsdkPackageAndOsdkRegistryUrl.js\";\nimport { promptOverwrite } from \"./prompts/promptOverwrite.js\";\nimport { promptProject } from \"./prompts/promptProject.js\";\nimport { promptScopes } from \"./prompts/promptScopes.js\";\nimport { promptSdkVersion } from \"./prompts/promptSdkVersion.js\";\nimport { promptTemplate } from \"./prompts/promptTemplate.js\";\nimport { run } from \"./run.js\";\nexport async function cli(args = process.argv) {\n const base = yargs(hideBin(args)).version(process.env.PACKAGE_VERSION ?? \"\").wrap(Math.min(150, yargs().terminalWidth())).strict().help().command(\"$0 [project] [--<option>]\", \"Create a new OSDK application based on framework templates. Information may be provided through options to skip interactive prompts.\", yargs => yargs.positional(\"project\", {\n type: \"string\",\n describe: \"Project name to create\"\n }).option(\"overwrite\", {\n type: \"boolean\",\n describe: \"Overwrite project directory if already exists\"\n }).option(\"beta\", {\n type: \"boolean\",\n describe: \"Use templates compatible with the Beta version of the SDK\"\n }).option(\"template\", {\n type: \"string\",\n describe: \"Template name to use\"\n }).option(\"sdkVersion\", {\n type: \"string\",\n describe: \"The OSDK version to use\"\n }).option(\"foundryUrl\", {\n type: \"string\",\n describe: \"URL for the Foundry stack\"\n }).option(\"applicationUrl\", {\n type: \"string\",\n describe: \"URL the production application will be hosted on\",\n conflicts: \"skipApplicationUrl\"\n }).option(\"skipApplicationUrl\", {\n type: \"boolean\",\n describe: \"Skip filling in URL the production application will be hosted on\"\n }).option(\"application\", {\n type: \"string\",\n describe: \"Application resource identifier (rid)\"\n }).option(\"ontology\", {\n type: \"string\",\n describe: \"Ontology resource identifier (rid)\",\n conflicts: \"skipOsdk\"\n }).option(\"osdkPackage\", {\n type: \"string\",\n describe: \"OSDK package name for application\",\n conflicts: \"skipOsdk\"\n }).option(\"skipOsdk\", {\n type: \"boolean\",\n describe: \"Skip filling in OSDK options\"\n }).option(\"clientId\", {\n type: \"string\",\n describe: \"OAuth client ID for application\"\n }).option(\"osdkRegistryUrl\", {\n type: \"string\",\n describe: \"URL for NPM registry to install OSDK package\"\n }).option(\"corsProxy\", {\n type: \"boolean\",\n describe: \"Include a CORS proxy for Foundry API requests during local development\"\n }).option(\"scopes\", {\n type: \"string\",\n array: true,\n describe: \"List of client-side scopes to be used when creating a client\"\n }).check(argv => {\n if (argv.skipOsdk && (argv.sdkVersion == null || argv.sdkVersion.startsWith(\"1.\"))) {\n throw new Error(\"The --skipOsdk flag is only allowed when sdkVersion is 2.x. Please set --sdkVersion to 2.x or remove the --skipOsdk flag.\");\n }\n return true;\n }));\n const parsed = base.parseSync();\n const project = await promptProject(parsed);\n const overwrite = await promptOverwrite({\n ...parsed,\n project\n });\n const template = await promptTemplate(parsed);\n const sdkVersion = await promptSdkVersion({\n ...parsed,\n template\n });\n const foundryUrl = await promptFoundryUrl(parsed);\n const applicationUrl = await promptApplicationUrl(parsed);\n const application = await promptApplicationRid(parsed);\n const clientId = await promptClientId(parsed);\n const {\n osdkPackage,\n ontology,\n osdkRegistryUrl\n } = await promptOntologyAndOsdkPackageAndOsdkRegistryUrl({\n ...parsed,\n sdkVersion\n });\n const corsProxy = await promptCorsProxy(parsed);\n const scopes = await promptScopes(parsed);\n await run({\n project,\n overwrite,\n template,\n sdkVersion,\n foundryUrl,\n applicationUrl,\n application,\n clientId,\n osdkPackage,\n osdkRegistryUrl,\n corsProxy,\n scopes,\n ontology\n });\n}"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@osdk/create-app",
|
|
3
|
-
"version": "2.12.
|
|
3
|
+
"version": "2.12.1-main-e2bad8ff54819e9aa03e4db6058775a0a68e0432",
|
|
4
4
|
"description": "",
|
|
5
5
|
"access": "public",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"find-up": "7.0.0",
|
|
30
30
|
"handlebars": "4.7.8",
|
|
31
31
|
"yargs": "17.7.2",
|
|
32
|
-
"@osdk/generator-utils": "2.12.
|
|
32
|
+
"@osdk/generator-utils": "2.12.1-main-e2bad8ff54819e9aa03e4db6058775a0a68e0432"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@types/node": "^18.0.0",
|
|
@@ -39,16 +39,16 @@
|
|
|
39
39
|
"redent": "^4.0.0",
|
|
40
40
|
"tmp": "^0.2.5",
|
|
41
41
|
"typescript": "~5.5.4",
|
|
42
|
-
"@osdk/create-app.template.expo.v2": "2.12.
|
|
43
|
-
"@osdk/create-app.template.react": "2.12.
|
|
44
|
-
"@osdk/create-app.template.react.beta": "2.12.
|
|
45
|
-
"@osdk/create-app.template.tutorial-todo-aip-app": "2.12.
|
|
46
|
-
"@osdk/create-app.template.tutorial-todo-aip-app.beta": "2.12.
|
|
47
|
-
"@osdk/create-app.template.tutorial-todo-app": "2.12.
|
|
48
|
-
"@osdk/create-app.template.
|
|
49
|
-
"@osdk/create-app.template.
|
|
42
|
+
"@osdk/create-app.template.expo.v2": "2.12.1-main-e2bad8ff54819e9aa03e4db6058775a0a68e0432",
|
|
43
|
+
"@osdk/create-app.template.react": "2.12.1-main-e2bad8ff54819e9aa03e4db6058775a0a68e0432",
|
|
44
|
+
"@osdk/create-app.template.react.beta": "2.12.1-main-e2bad8ff54819e9aa03e4db6058775a0a68e0432",
|
|
45
|
+
"@osdk/create-app.template.tutorial-todo-aip-app": "2.12.1-main-e2bad8ff54819e9aa03e4db6058775a0a68e0432",
|
|
46
|
+
"@osdk/create-app.template.tutorial-todo-aip-app.beta": "2.12.1-main-e2bad8ff54819e9aa03e4db6058775a0a68e0432",
|
|
47
|
+
"@osdk/create-app.template.tutorial-todo-app": "2.12.1-main-e2bad8ff54819e9aa03e4db6058775a0a68e0432",
|
|
48
|
+
"@osdk/create-app.template.tutorial-todo-app.beta": "2.12.1-main-e2bad8ff54819e9aa03e4db6058775a0a68e0432",
|
|
49
|
+
"@osdk/create-app.template.vue": "2.12.1-main-e2bad8ff54819e9aa03e4db6058775a0a68e0432",
|
|
50
50
|
"@osdk/monorepo.api-extractor": "~0.7.0",
|
|
51
|
-
"@osdk/create-app.template.vue.v2": "2.12.
|
|
51
|
+
"@osdk/create-app.template.vue.v2": "2.12.1-main-e2bad8ff54819e9aa03e4db6058775a0a68e0432",
|
|
52
52
|
"@osdk/monorepo.tsconfig": "~0.7.0"
|
|
53
53
|
},
|
|
54
54
|
"publishConfig": {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../create-app.template.react.beta/build/esm/generatedNoCheck/index.js"],"names":[],"mappings":"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","file":"esm-RBDQWCWM.js","sourcesContent":["export const files = new Map([[\".editorconfig\", {\n \"type\": \"base64\",\n \"body\": \"cm9vdCA9IHRydWUKClsqXQplbmRfb2ZfbGluZSA9IGxmCmluc2VydF9maW5hbF9uZXdsaW5lID0gdHJ1ZQp0cmltX3RyYWlsaW5nX3doaXRlc3BhY2UgPSB0cnVlCmNoYXJzZXQgPSB1dGYtOAppbmRlbnRfc3R5bGUgPSBzcGFjZQppbmRlbnRfc2l6ZSA9IDIK\"\n}], [\".vscode/extensions.json\", {\n \"type\": \"base64\",\n \"body\": \"ewogICJyZWNvbW1lbmRhdGlvbnMiOiBbCiAgICAiZGJhZXVtZXIudnNjb2RlLWVzbGludCIsCiAgICAiZXNiZW5wLnByZXR0aWVyLXZzY29kZSIsCiAgICAiZWRpdG9yY29uZmlnLmVkaXRvcmNvbmZpZyIKICBdCn0K\"\n}], [\".vscode/settings.json\", {\n \"type\": \"base64\",\n \"body\": \"ewogICJlZGl0b3IuZm9ybWF0T25TYXZlIjogdHJ1ZSwKICAiZWRpdG9yLmRlZmF1bHRGb3JtYXR0ZXIiOiAiZXNiZW5wLnByZXR0aWVyLXZzY29kZSIsCiAgImVzbGludC51c2VGbGF0Q29uZmlnIjogdHJ1ZSwKICAic2VhcmNoLmV4Y2x1ZGUiOiB7CiAgICAiKiovbm9kZV9tb2R1bGVzIjogdHJ1ZSwKICAgICIqKi9kaXN0IjogdHJ1ZQogIH0KfQo=\"\n}], [\"README.md.hbs\", {\n type: \"raw\",\n body: `# {{project}}\n\n{{#if osdkPackage}}\nThis project was generated with [\\`@osdk/create-app\\`](https://www.npmjs.com/package/@osdk/create-app) and demonstrates using the Ontology SDK package \\`{{osdkPackage}}\\` with React on top of Vite. Check out the [Vite](https://vitejs.dev/guide/) docs for further configuration.\n{{else}}\nThis project was generated with [\\`@osdk/create-app\\`](https://www.npmjs.com/package/@osdk/create-app) and demonstrates using the Platform SDK with React on top of Vite. Check out the [Vite](https://vitejs.dev/guide/) docs for further configuration.\n\nIf you later add an Ontology SDK to your application, follow this [guide]({{foundryUrl}}/docs/foundry/ontology-sdk/add-osdk-to-bootstrapped-repository) to correctly set it up in this project.\n{{/if}}\n\n## Developing\n\nRun the following command or equivalent with your preferred package manager to start a local development server on \\`http://localhost:8080\\`:\n\n\\`\\`\\`sh\nnpm run dev\n\\`\\`\\`\n\nDevelopment configuration is stored in \\`.env.development\\`.\n\n{{#if corsProxy}}\nIn order to make API requests to Foundry, a CORS proxy has been set up for local development which may be removed if the stack is configured to allow \\`http://localhost:8080\\` to load resources. The configured OAuth client must also allow \\`http://localhost:8080/auth/callback\\` as a redirect URL.\n{{else}}\nIn order to make API requests to Foundry, CORS must be configured for the stack to allow \\`http://localhost:8080\\` to load resources. If this has not been configured and you are unable to request this, you can alternatively generate your project again with \\`--corsProxy true\\` to use a proxy for API requests during local development. The configured OAuth client must also allow \\`http://localhost:8080/auth/callback\\` as a redirect URL.\n{{/if}}\n\n## Deploying\n\nRun the following command or equivalent with your preferred package manager to create a production build of your application:\n\n\\`\\`\\`sh\nnpm run build\n\\`\\`\\`\n\nProduction configuration is stored in \\`.env.production\\`.\n\nIf you did not fill in the URL your production application will be hosted on you will need to fill in the \\`VITE_FOUNDRY_REDIRECT_URL\\` in \\`.env.production\\`. A default test is included in \\`env.test.ts\\` to verify your production environment variables which you can enable by removing the skip condition or running tests with the environment variable set \\`VERIFY_ENV_PRODUCTION=true\\`.\n\nIn order to make API requests to Foundry, CORS must be configured for the stack to allow the production origin to load resources. This will be automatically done for you if you are using Foundry website hosting. The configured OAuth client must also allow the production origin auth callback as a redirect URL.\n\nA \\`foundry.config.json\\` file is included in the root of this project to make deploying to Foundry website hosting with [\\`@osdk/cli\\`](https://www.npmjs.com/package/@osdk/cli) easier. If you are not using Foundry website hosting for your application you may delete this file.\n`\n}], [\".gitignore\", {\n type: \"raw\",\n body: `# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\npnpm-debug.log*\nlerna-debug.log*\n\nnode_modules\ndist\ndist-ssr\n*.local\n.pnpm-store\n\n# Editor directories and files\n.vscode/*\n!.vscode/extensions.json\n!.vscode/settings.json\n.idea\n.DS_Store\n*.suo\n*.ntvs*\n*.njsproj\n*.sln\n*.sw?\n`\n}], [\"eslint.config.mjs\", {\n \"type\": \"base64\",\n \"body\": \"Ly8gQHRzLWNoZWNrCmltcG9ydCBlc2xpbnQgZnJvbSAiQGVzbGludC9qcyI7CmltcG9ydCB0c1BhcnNlciBmcm9tICJAdHlwZXNjcmlwdC1lc2xpbnQvcGFyc2VyIjsKaW1wb3J0ICogYXMgaW1wb3J0UGx1Z2luIGZyb20gImVzbGludC1wbHVnaW4taW1wb3J0IjsKaW1wb3J0IGpzeEExMXlQbHVnaW4gZnJvbSAiZXNsaW50LXBsdWdpbi1qc3gtYTExeSI7CmltcG9ydCByZWFjdFBsdWdpbiBmcm9tICJlc2xpbnQtcGx1Z2luLXJlYWN0IjsKaW1wb3J0IHJlYWN0SG9va3NQbHVnaW4gZnJvbSAiZXNsaW50LXBsdWdpbi1yZWFjdC1ob29rcyI7CmltcG9ydCByZWFjdFJlZnJlc2ggZnJvbSAiZXNsaW50LXBsdWdpbi1yZWFjdC1yZWZyZXNoIjsKaW1wb3J0IGdsb2JhbHMgZnJvbSAiZ2xvYmFscyI7CmltcG9ydCB0c2VzbGludCBmcm9tICJ0eXBlc2NyaXB0LWVzbGludCI7CgpleHBvcnQgZGVmYXVsdCB0c2VzbGludC5jb25maWcoewogIGZpbGVzOiBbImVzbGludC5jb25maWcubWpzIiwgInNyYy8qKi8qLntqcyxtanMsY2pzLHRzLGpzeCx0c3h9Il0sCiAgc2V0dGluZ3M6IHsKICAgIHJlYWN0OiB7CiAgICAgIHZlcnNpb246ICJkZXRlY3QiLAogICAgfSwKCiAgICAiaW1wb3J0L3Jlc29sdmVyIjogewogICAgICBub2RlOiB7CiAgICAgICAgZXh0ZW5zaW9uczogWyIuanMiLCAiLmpzeCIsICIudHMiLCAiLnRzeCJdLAogICAgICB9LAogICAgfSwKICB9LAogIGxhbmd1YWdlT3B0aW9uczogewogICAgZ2xvYmFsczogewogICAgICAuLi5nbG9iYWxzLmJyb3dzZXIsCiAgICB9LAoKICAgIHBhcnNlcjogdHNQYXJzZXIsCiAgfSwKICBleHRlbmRzOiBbCiAgICBlc2xpbnQuY29uZmlncy5yZWNvbW1lbmRlZCwKICAgIC4uLnRzZXNsaW50LmNvbmZpZ3MucmVjb21tZW5kZWQsCiAgXSwKICBwbHVnaW5zOiB7CiAgICAicmVhY3QiOiAvKiogQHR5cGUgaW1wb3J0KCJlc2xpbnQiKS5FU0xpbnQuUGx1Z2luICovIChyZWFjdFBsdWdpbiksCiAgICAicmVhY3QtcmVmcmVzaCI6IHJlYWN0UmVmcmVzaCwKICAgICJyZWFjdC1ob29rcyI6CiAgICAgIC8qKiBAdHlwZSBpbXBvcnQoImVzbGludCIpLkVTTGludC5QbHVnaW4gKi8gKHJlYWN0SG9va3NQbHVnaW4pLAogICAgImpzeC1hMTF5IjoganN4QTExeVBsdWdpbiwKICAgICJpbXBvcnQiOiBpbXBvcnRQbHVnaW4sCiAgfSwKICBydWxlczogewogICAgLi4uKAogICAgICAvKiogQHR5cGUgaW1wb3J0KCJlc2xpbnQiKS5MaW50ZXIuUnVsZXNSZWNvcmQgKi8KICAgICAgKHJlYWN0UGx1Z2luLmNvbmZpZ3MuZmxhdD8ucmVjb21tZW5kZWQucnVsZXMpCiAgICApLAogICAgInJlYWN0LWhvb2tzL3J1bGVzLW9mLWhvb2tzIjogImVycm9yIiwKICAgICJyZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHMiOiAid2FybiIsCiAgICAuLi5qc3hBMTF5UGx1Z2luLmNvbmZpZ3MucmVjb21tZW5kZWQucnVsZXMsCiAgICAicmVhY3QtcmVmcmVzaC9vbmx5LWV4cG9ydC1jb21wb25lbnRzIjogWyJ3YXJuIiwgewogICAgICBhbGxvd0NvbnN0YW50RXhwb3J0OiB0cnVlLAogICAgfV0sCgogICAgImVxZXFlcSI6IFsiZXJyb3IiLCAiYWx3YXlzIiwgeyAibnVsbCI6ICJpZ25vcmUiIH1dLAogICAgIm5vLWNvbnNvbGUiOiAid2FybiIsCiAgICAiY3VybHkiOiBbImVycm9yIiwgImFsbCJdLAogICAgIkB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyI6IFsiZXJyb3IiLCB7CiAgICAgICJhcmdzSWdub3JlUGF0dGVybiI6ICJeXyIsCiAgICB9XSwKICAgICJpbXBvcnQvbmFtZWQiOiAiZXJyb3IiLAogICAgImltcG9ydC9kZWZhdWx0IjogImVycm9yIiwKICAgICJpbXBvcnQvbmFtZXNwYWNlIjogImVycm9yIiwKICAgICJpbXBvcnQvbm8tZHVwbGljYXRlcyI6ICJlcnJvciIsCiAgICAiaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzIjogImVycm9yIiwKICAgICJyZWFjdC9yZWFjdC1pbi1qc3gtc2NvcGUiOiAib2ZmIiwKICB9LAp9KTsK\"\n}], [\"index.html.hbs\", {\n type: \"raw\",\n body: `<!doctype html>\n<html lang=\"en\">\n <head>\n <meta charset=\"UTF-8\" />\n <link rel=\"icon\" type=\"image/svg+xml\" href=\"/react.svg\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <meta name=\"osdk-clientId\" content=\"%VITE_FOUNDRY_CLIENT_ID%\" />\n <meta name=\"osdk-redirectUrl\" content=\"%VITE_FOUNDRY_REDIRECT_URL%\" />\n <meta name=\"osdk-foundryUrl\" content=\"%VITE_FOUNDRY_API_URL%\" />\n {{#if osdkPackage}}\n <meta name=\"osdk-ontologyRid\" content=\"%VITE_FOUNDRY_ONTOLOGY_RID%\" />\n <title>Ontology SDK + React</title>\n {{else}}\n <title>Platform SDK + React</title>\n {{/if}}\n </head>\n <body>\n <div id=\"root-container\">\n <div id=\"root\"></div>\n </div>\n <script type=\"module\" src=\"/src/main.tsx\"></script>\n </body>\n</html>\n`\n}], [\"package.json.osdk.hbs\", {\n type: \"raw\",\n body: `{\n \"name\": \"{{project}}\",\n \"private\": true,\n \"version\": \"0.0.0\",\n \"type\": \"module\",\n \"scripts\": {\n \"dev\": \"vite\",\n \"build\": \"tsc && vite build\",\n \"format\": \"prettier --write src/\",\n \"lint\": \"eslint . --report-unused-disable-directives --max-warnings 0\",\n \"lint:fix\": \"eslint --report-unused-disable-directives --max-warnings 0 --fix\",\n \"test\": \"vitest run\",\n \"check\": \"eslint . --report-unused-disable-directives --max-warnings 0 && tsc --noEmit && vitest run\",\n \"preview\": \"vite preview\"\n },\n \"dependencies\": {\n \"{{osdkPackage}}\": \"latest\",\n \"@osdk/client\": \"{{clientVersion}}\",\n \"@osdk/foundry\": \"latest\",\n \"@osdk/oauth\": \"^1.1.0\",\n \"@blueprintjs/core\": \"^6.10.0\",\n \"@blueprintjs/icons\": \"^6.7.0\",\n \"normalize.css\": \"^8.0.1\",\n \"react\": \"^18\",\n \"react-dom\": \"^18\",\n \"react-router-dom\": \"^6.30.1\"\n },\n \"devDependencies\": {\n \"@trivago/prettier-plugin-sort-imports\": \"^5.0.0\",\n \"prettier\": \"^3.0.0\",\n \"@eslint/compat\": \"^1.3.2\",\n \"@eslint/js\": \"^9.35.0\",\n \"@types/eslint-plugin-jsx-a11y\": \"^6.10.0\",\n \"@types/node\": \"^24.12.0\",\n \"@types/react\": \"^18\",\n \"@types/react-dom\": \"^18\",\n \"@typescript-eslint/eslint-plugin\": \"^8.43.0\",\n \"@typescript-eslint/parser\": \"^8.43.0\",\n \"@vitejs/plugin-react\": \"^4.7.0\",\n \"eslint\": \"^9.35.0\",\n \"eslint-plugin-import\": \"^2.32.0\",\n \"eslint-plugin-jsx-a11y\": \"^6.10.2\",\n \"eslint-plugin-prettier\": \"^5.5.4\",\n \"eslint-plugin-react\": \"^7.37.5\",\n \"eslint-plugin-react-hooks\": \"^5.2.0\",\n \"eslint-plugin-react-refresh\": \"^0.4.20\",\n \"globals\": \"^15.15.0\",\n \"typescript\": \"~5.5.4\",\n \"typescript-eslint\": \"^8.43.0\",\n \"vite\": \"^7.3.1\",\n \"vitest\": \"^3.2.4\"\n }\n}`\n}], [\"package.json.psdk.hbs\", {\n type: \"raw\",\n body: `{\n \"name\": \"{{project}}\",\n \"private\": true,\n \"version\": \"0.0.0\",\n \"type\": \"module\",\n \"scripts\": {\n \"dev\": \"vite\",\n \"build\": \"tsc && vite build\",\n \"format\": \"prettier --write src/\",\n \"lint\": \"eslint . --report-unused-disable-directives --max-warnings 0\",\n \"lint:fix\": \"eslint --report-unused-disable-directives --max-warnings 0 --fix\",\n \"test\": \"vitest run\",\n \"check\": \"eslint . --report-unused-disable-directives --max-warnings 0 && tsc --noEmit && vitest run\",\n \"preview\": \"vite preview\"\n },\n \"dependencies\": {\n \"@osdk/client\": \"{{clientVersion}}\",\n \"@osdk/foundry\": \"latest\",\n \"@osdk/oauth\": \"^1.1.0\",\n \"@blueprintjs/core\": \"^6.10.0\",\n \"@blueprintjs/icons\": \"^6.7.0\",\n \"normalize.css\": \"^8.0.1\",\n \"react\": \"^18\",\n \"react-dom\": \"^18\",\n \"react-router-dom\": \"^6.30.1\"\n },\n \"devDependencies\": {\n \"@trivago/prettier-plugin-sort-imports\": \"^5.0.0\",\n \"prettier\": \"^3.0.0\",\n \"@eslint/compat\": \"^1.3.2\",\n \"@eslint/js\": \"^9.35.0\",\n \"@types/eslint-plugin-jsx-a11y\": \"^6.10.0\",\n \"@types/node\": \"^24.12.0\",\n \"@types/react\": \"^18\",\n \"@types/react-dom\": \"^18\",\n \"@typescript-eslint/eslint-plugin\": \"^8.43.0\",\n \"@typescript-eslint/parser\": \"^8.43.0\",\n \"@vitejs/plugin-react\": \"^4.7.0\",\n \"eslint\": \"^9.35.0\",\n \"eslint-plugin-import\": \"^2.32.0\",\n \"eslint-plugin-jsx-a11y\": \"^6.10.2\",\n \"eslint-plugin-prettier\": \"^5.5.4\",\n \"eslint-plugin-react\": \"^7.37.5\",\n \"eslint-plugin-react-hooks\": \"^5.2.0\",\n \"eslint-plugin-react-refresh\": \"^0.4.20\",\n \"globals\": \"^15.15.0\",\n \"typescript\": \"~5.5.4\",\n \"typescript-eslint\": \"^8.43.0\",\n \"vite\": \"^7.3.1\",\n \"vitest\": \"^3.2.4\"\n }\n}`\n}], [\"prettier.config.js\", {\n \"type\": \"base64\",\n \"body\": \"ZXhwb3J0IGRlZmF1bHQgewogIHNlbWk6IHRydWUsCiAgc2luZ2xlUXVvdGU6IGZhbHNlLAogIHRyYWlsaW5nQ29tbWE6ICJhbGwiLAogIHByaW50V2lkdGg6IDEwMCwKICB0YWJXaWR0aDogMiwKICBwbHVnaW5zOiBbIkB0cml2YWdvL3ByZXR0aWVyLXBsdWdpbi1zb3J0LWltcG9ydHMiXSwKICBpbXBvcnRPcmRlcjogWwogICAgIl5yZWFjdCIsCiAgICAiXkBvc2RrLyguKikkIiwKICAgICI8VEhJUkRfUEFSVFlfTU9EVUxFUz4iLAogICAgIl5ALyguKikkIiwKICAgICJeWy4vXSIsCiAgXSwKICBpbXBvcnRPcmRlclNlcGFyYXRpb246IGZhbHNlLAogIGltcG9ydE9yZGVyU29ydFNwZWNpZmllcnM6IHRydWUsCn07Cg==\"\n}], [\"public/palantir.svg\", {\n \"type\": \"base64\",\n \"body\": \"PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00LjEwNzY4IDYuMDY0MDFDNC4xMDc2OCA4LjM3NzEgNS45NjcwMiAxMC4yNTI2IDguMjYwNTkgMTAuMjUyNkMxMC41NTQzIDEwLjI1MjYgMTIuNDEzOCA4LjM3NzEgMTIuNDEzOCA2LjA2NDAxQzEyLjQxMzggMy43NTA4IDEwLjU1NDMgMS44NzU1MyA4LjI2MDU5IDEuODc1NTNDNS45NjcwMiAxLjg3NTUzIDQuMTA3NjggMy43NTA4IDQuMTA3NjggNi4wNjQwMVpNOC4yNjA5MyAxMy45MjNMMTMuNjI5OSAxMS41ODQ4TDE0LjUyMTcgMTMuMzA5MUw4LjI2MDkzIDE2TDIgMTMuMzA5MUwyLjg5MjAxIDExLjU4NDhMOC4yNjA5MyAxMy45MjNaTTguMjYxMDEgMEM0Ljk0MzY3IDAgMi4yNTQ0MiAyLjcxMjI4IDIuMjU0NDIgNi4wNTgwM0MyLjI1NDQyIDkuNDAzNzggNC45NDM2NyAxMi4xMTU5IDguMjYxMDEgMTIuMTE1OUMxMS41NzgyIDEyLjExNTkgMTQuMjY3NiA5LjQwMzc4IDE0LjI2NzYgNi4wNTgwM0MxNC4yNjc2IDIuNzEyMjggMTEuNTc4MiAwIDguMjYxMDEgMFoiIGZpbGw9IiMxMTE0MTgiLz4KPC9zdmc+Cg==\"\n}], [\"public/react.svg\", {\n \"type\": \"base64\",\n \"body\": \"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIiBjbGFzcz0iaWNvbmlmeSBpY29uaWZ5LS1sb2dvcyIgd2lkdGg9IjM1LjkzIiBoZWlnaHQ9IjMyIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCBtZWV0IiB2aWV3Qm94PSIwIDAgMjU2IDIyOCI+PHBhdGggZmlsbD0iIzAwRDhGRiIgZD0iTTIxMC40ODMgNzMuODI0YTE3MS40OSAxNzEuNDkgMCAwIDAtOC4yNC0yLjU5N2MuNDY1LTEuOS44OTMtMy43NzcgMS4yNzMtNS42MjFjNi4yMzgtMzAuMjgxIDIuMTYtNTQuNjc2LTExLjc2OS02Mi43MDhjLTEzLjM1NS03LjctMzUuMTk2LjMyOS01Ny4yNTQgMTkuNTI2YTE3MS4yMyAxNzEuMjMgMCAwIDAtNi4zNzUgNS44NDhhMTU1Ljg2NiAxNTUuODY2IDAgMCAwLTQuMjQxLTMuOTE3QzEwMC43NTkgMy44MjkgNzcuNTg3LTQuODIyIDYzLjY3MyAzLjIzM0M1MC4zMyAxMC45NTcgNDYuMzc5IDMzLjg5IDUxLjk5NSA2Mi41ODhhMTcwLjk3NCAxNzAuOTc0IDAgMCAwIDEuODkyIDguNDhjLTMuMjguOTMyLTYuNDQ1IDEuOTI0LTkuNDc0IDIuOThDMTcuMzA5IDgzLjQ5OCAwIDk4LjMwNyAwIDExMy42NjhjMCAxNS44NjUgMTguNTgyIDMxLjc3OCA0Ni44MTIgNDEuNDI3YTE0NS41MiAxNDUuNTIgMCAwIDAgNi45MjEgMi4xNjVhMTY3LjQ2NyAxNjcuNDY3IDAgMCAwLTIuMDEgOS4xMzhjLTUuMzU0IDI4LjItMS4xNzMgNTAuNTkxIDEyLjEzNCA1OC4yNjZjMTMuNzQ0IDcuOTI2IDM2LjgxMi0uMjIgNTkuMjczLTE5Ljg1NWExNDUuNTY3IDE0NS41NjcgMCAwIDAgNS4zNDItNC45MjNhMTY4LjA2NCAxNjguMDY0IDAgMCAwIDYuOTIgNi4zMTRjMjEuNzU4IDE4LjcyMiA0My4yNDYgMjYuMjgyIDU2LjU0IDE4LjU4NmMxMy43MzEtNy45NDkgMTguMTk0LTMyLjAwMyAxMi40LTYxLjI2OGExNDUuMDE2IDE0NS4wMTYgMCAwIDAtMS41MzUtNi44NDJjMS42Mi0uNDggMy4yMS0uOTc0IDQuNzYtMS40ODhjMjkuMzQ4LTkuNzIzIDQ4LjQ0My0yNS40NDMgNDguNDQzLTQxLjUyYzAtMTUuNDE3LTE3Ljg2OC0zMC4zMjYtNDUuNTE3LTM5Ljg0NFptLTYuMzY1IDcwLjk4NGMtMS40LjQ2My0yLjgzNi45MS00LjMgMS4zNDVjLTMuMjQtMTAuMjU3LTcuNjEyLTIxLjE2My0xMi45NjMtMzIuNDMyYzUuMTA2LTExIDkuMzEtMjEuNzY3IDEyLjQ1OS0zMS45NTdjMi42MTkuNzU4IDUuMTYgMS41NTcgNy42MSAyLjRjMjMuNjkgOC4xNTYgMzguMTQgMjAuMjEzIDM4LjE0IDI5LjUwNGMwIDkuODk2LTE1LjYwNiAyMi43NDMtNDAuOTQ2IDMxLjE0Wm0tMTAuNTE0IDIwLjgzNGMyLjU2MiAxMi45NCAyLjkyNyAyNC42NCAxLjIzIDMzLjc4N2MtMS41MjQgOC4yMTktNC41OSAxMy42OTgtOC4zODIgMTUuODkzYy04LjA2NyA0LjY3LTI1LjMyLTEuNC00My45MjctMTcuNDEyYTE1Ni43MjYgMTU2LjcyNiAwIDAgMS02LjQzNy01Ljg3YzcuMjE0LTcuODg5IDE0LjQyMy0xNy4wNiAyMS40NTktMjcuMjQ2YzEyLjM3Ni0xLjA5OCAyNC4wNjgtMi44OTQgMzQuNjcxLTUuMzQ1YTEzNC4xNyAxMzQuMTcgMCAwIDEgMS4zODYgNi4xOTNaTTg3LjI3NiAyMTQuNTE1Yy03Ljg4MiAyLjc4My0xNC4xNiAyLjg2My0xNy45NTUuNjc1Yy04LjA3NS00LjY1Ny0xMS40MzItMjIuNjM2LTYuODUzLTQ2Ljc1MmExNTYuOTIzIDE1Ni45MjMgMCAwIDEgMS44NjktOC40OTljMTAuNDg2IDIuMzIgMjIuMDkzIDMuOTg4IDM0LjQ5OCA0Ljk5NGM3LjA4NCA5Ljk2NyAxNC41MDEgMTkuMTI4IDIxLjk3NiAyNy4xNWExMzQuNjY4IDEzNC42NjggMCAwIDEtNC44NzcgNC40OTJjLTkuOTMzIDguNjgyLTE5Ljg4NiAxNC44NDItMjguNjU4IDE3Ljk0Wk01MC4zNSAxNDQuNzQ3Yy0xMi40ODMtNC4yNjctMjIuNzkyLTkuODEyLTI5Ljg1OC0xNS44NjNjLTYuMzUtNS40MzctOS41NTUtMTAuODM2LTkuNTU1LTE1LjIxNmMwLTkuMzIyIDEzLjg5Ny0yMS4yMTIgMzcuMDc2LTI5LjI5M2MyLjgxMy0uOTggNS43NTctMS45MDUgOC44MTItMi43NzNjMy4yMDQgMTAuNDIgNy40MDYgMjEuMzE1IDEyLjQ3NyAzMi4zMzJjLTUuMTM3IDExLjE4LTkuMzk5IDIyLjI0OS0xMi42MzQgMzIuNzkyYTEzNC43MTggMTM0LjcxOCAwIDAgMS02LjMxOC0xLjk3OVptMTIuMzc4LTg0LjI2Yy00LjgxMS0yNC41ODctMS42MTYtNDMuMTM0IDYuNDI1LTQ3Ljc4OWM4LjU2NC00Ljk1OCAyNy41MDIgMi4xMTEgNDcuNDYzIDE5LjgzNWExNDQuMzE4IDE0NC4zMTggMCAwIDEgMy44NDEgMy41NDVjLTcuNDM4IDcuOTg3LTE0Ljc4NyAxNy4wOC0yMS44MDggMjYuOTg4Yy0xMi4wNCAxLjExNi0yMy41NjUgMi45MDgtMzQuMTYxIDUuMzA5YTE2MC4zNDIgMTYwLjM0MiAwIDAgMS0xLjc2LTcuODg3Wm0xMTAuNDI3IDI3LjI2OGEzNDcuOCAzNDcuOCAwIDAgMC03Ljc4NS0xMi44MDNjOC4xNjggMS4wMzMgMTUuOTk0IDIuNDA0IDIzLjM0MyA0LjA4Yy0yLjIwNiA3LjA3Mi00Ljk1NiAxNC40NjUtOC4xOTMgMjIuMDQ1YTM4MS4xNTEgMzgxLjE1MSAwIDAgMC03LjM2NS0xMy4zMjJabS00NS4wMzItNDMuODYxYzUuMDQ0IDUuNDY1IDEwLjA5NiAxMS41NjYgMTUuMDY1IDE4LjE4NmEzMjIuMDQgMzIyLjA0IDAgMCAwLTMwLjI1Ny0uMDA2YzQuOTc0LTYuNTU5IDEwLjA2OS0xMi42NTIgMTUuMTkyLTE4LjE4Wk04Mi44MDIgODcuODNhMzIzLjE2NyAzMjMuMTY3IDAgMCAwLTcuMjI3IDEzLjIzOGMtMy4xODQtNy41NTMtNS45MDktMTQuOTgtOC4xMzQtMjIuMTUyYzcuMzA0LTEuNjM0IDE1LjA5My0yLjk3IDIzLjIwOS0zLjk4NGEzMjEuNTI0IDMyMS41MjQgMCAwIDAtNy44NDggMTIuODk3Wm04LjA4MSA2NS4zNTJjLTguMzg1LS45MzYtMTYuMjkxLTIuMjAzLTIzLjU5My0zLjc5M2MyLjI2LTcuMyA1LjA0NS0xNC44ODUgOC4yOTgtMjIuNmEzMjEuMTg3IDMyMS4xODcgMCAwIDAgNy4yNTcgMTMuMjQ2YzIuNTk0IDQuNDggNS4yOCA4Ljg2OCA4LjAzOCAxMy4xNDdabTM3LjU0MiAzMS4wM2MtNS4xODQtNS41OTItMTAuMzU0LTExLjc3OS0xNS40MDMtMTguNDMzYzQuOTAyLjE5MiA5Ljg5OS4yOSAxNC45NzguMjljNS4yMTggMCAxMC4zNzYtLjExNyAxNS40NTMtLjM0M2MtNC45ODUgNi43NzQtMTAuMDE4IDEyLjk3LTE1LjAyOCAxOC40ODZabTUyLjE5OC01Ny44MTdjMy40MjIgNy44IDYuMzA2IDE1LjM0NSA4LjU5NiAyMi41MmMtNy40MjIgMS42OTQtMTUuNDM2IDMuMDU4LTIzLjg4IDQuMDcxYTM4Mi40MTcgMzgyLjQxNyAwIDAgMCA3Ljg1OS0xMy4wMjZhMzQ3LjQwMyAzNDcuNDAzIDAgMCAwIDcuNDI1LTEzLjU2NVptLTE2Ljg5OCA4LjEwMWEzNTguNTU3IDM1OC41NTcgMCAwIDEtMTIuMjgxIDE5LjgxNWEzMjkuNCAzMjkuNCAwIDAgMS0yMy40NDQuODIzYy03Ljk2NyAwLTE1LjcxNi0uMjQ4LTIzLjE3OC0uNzMyYTMxMC4yMDIgMzEwLjIwMiAwIDAgMS0xMi41MTMtMTkuODQ2aC4wMDFhMzA3LjQxIDMwNy40MSAwIDAgMS0xMC45MjMtMjAuNjI3YTMxMC4yNzggMzEwLjI3OCAwIDAgMSAxMC44OS0yMC42MzdsLS4wMDEuMDAxYTMwNy4zMTggMzA3LjMxOCAwIDAgMSAxMi40MTMtMTkuNzYxYzcuNjEzLS41NzYgMTUuNDItLjg3NiAyMy4zMS0uODc2SDEyOGM3LjkyNiAwIDE1Ljc0My4zMDMgMjMuMzU0Ljg4M2EzMjkuMzU3IDMyOS4zNTcgMCAwIDEgMTIuMzM1IDE5LjY5NWEzNTguNDg5IDM1OC40ODkgMCAwIDEgMTEuMDM2IDIwLjU0YTMyOS40NzIgMzI5LjQ3MiAwIDAgMS0xMSAyMC43MjJabTIyLjU2LTEyMi4xMjRjOC41NzIgNC45NDQgMTEuOTA2IDI0Ljg4MSA2LjUyIDUxLjAyNmMtLjM0NCAxLjY2OC0uNzMgMy4zNjctMS4xNSA1LjA5Yy0xMC42MjItMi40NTItMjIuMTU1LTQuMjc1LTM0LjIzLTUuNDA4Yy03LjAzNC0xMC4wMTctMTQuMzIzLTE5LjEyNC0yMS42NC0yNy4wMDhhMTYwLjc4OSAxNjAuNzg5IDAgMCAxIDUuODg4LTUuNGMxOC45LTE2LjQ0NyAzNi41NjQtMjIuOTQxIDQ0LjYxMi0xOC4zWk0xMjggOTAuODA4YzEyLjYyNSAwIDIyLjg2IDEwLjIzNSAyMi44NiAyMi44NnMtMTAuMjM1IDIyLjg2LTIyLjg2IDIyLjg2cy0yMi44Ni0xMC4yMzUtMjIuODYtMjIuODZzMTAuMjM1LTIyLjg2IDIyLjg2LTIyLjg2WiI+PC9wYXRoPjwvc3ZnPg==\"\n}], [\"src/AuthCallback.tsx\", {\n type: \"raw\",\n body: `import { auth } from \"@/client\";\nimport React, { useEffect, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\n\n/**\n * Component to render at \\`/auth/callback\\`\n * This calls signIn() again to save the token, and then navigates the user back to the home page.\n */\nfunction AuthCallback(): React.ReactElement {\n const [error, setError] = useState<string | undefined>(undefined);\n const navigate = useNavigate();\n\n // This effect conflicts with React 18 strict mode in development\n // https://react.dev/learn/synchronizing-with-effects#how-to-handle-the-effect-firing-twice-in-development\n useEffect(() => {\n auth\n .signIn()\n .then(() => navigate(\"/\", { replace: true }))\n .catch((e: unknown) => {\n if (e instanceof Error) {\n setError(e.message);\n } else {\n setError(String(e));\n }\n });\n }, [navigate]);\n return <div>{error != null ? error : \"Authenticating…\"}</div>;\n}\n\nexport default AuthCallback;\n`\n}], [\"src/Home.module.css\", {\n \"type\": \"base64\",\n \"body\": \"LmhvbWUgewogIGRpc3BsYXk6IGZsZXg7CiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICBnYXA6IGNhbGModmFyKC0tYnAtc3VyZmFjZS1zcGFjaW5nKSAqIDE1KTsKICBtYXgtd2lkdGg6IDgwMHB4OwogIHdpZHRoOiAxMDAlOwp9Cg==\"\n}], [\"src/Home.tsx.hbs\", {\n type: \"raw\",\n body: `import React from \"react\";\n{{#if osdkPackage}}\n// import { useOsdkClient } from \"@osdk/react\";\n{{/if}}\nimport css from \"./Home.module.css\";\nimport Header from \"@/components/Header\";\nimport NextSteps from \"@/components/NextSteps\";\n{{#if osdkPackage}}\nimport Osdk from \"@/components/Osdk\";\n{{/if}}\n\nfunction Home(): React.ReactElement {\n {{#if osdkPackage}}\n // See Ontology and Platform SDK docs in Developer Console on how to\n // use the client object to access Ontology resources and platform APIs\n // const client = useOsdkClient();\n\n {{/if}}\n return (\n <div className={css.home}>\n <Header />\n {{#if osdkPackage}}\n <Osdk />\n {{/if}}\n <NextSteps />\n </div>\n );\n}\n\nexport default Home;\n`\n}], [\"src/client.ts.hbs\", {\n type: \"raw\",\n body: `{{#if osdkPackage}}\nimport { createClient, type Client } from \"@osdk/client\";\n{{else}}\nimport { createPlatformClient, type PlatformClient } from \"@osdk/client\";\n{{/if}}\nimport { createPublicOauthClient, type PublicOauthClient } from \"@osdk/oauth\";\n\nfunction getMetaTagContent(tagName: string): string {\n const elements = document.querySelectorAll(\\`meta[name=\"\\${tagName}\"]\\`);\n const element = elements.item(elements.length - 1);\n const value = element ? element.getAttribute(\"content\") : null;\n if (value == null || value === \"\") {\n throw new Error(\\`Meta tag \\${tagName} not found or empty\\`);\n }\n if (value.match(/%.+%/)) {\n throw new Error(\n \\`Meta tag \\${tagName} contains placeholder value. Please add \\${value.replace(\n /%/g,\n \"\"\n )} to your .env files\\`\n );\n }\n return value;\n}\n\nconst foundryUrl = getMetaTagContent(\"osdk-foundryUrl\");\nconst clientId = getMetaTagContent(\"osdk-clientId\");\nconst redirectUrl = getMetaTagContent(\"osdk-redirectUrl\");\n{{#if osdkPackage}}\nconst ontologyRid = getMetaTagContent(\"osdk-ontologyRid\");\n{{/if}}\n\n{{#if scopes}}\nconst scopes = [\n {{#each scopes}}\n \"{{this}}\",\n {{/each}}\n];\n{{/if}}\n\nexport const auth: PublicOauthClient = createPublicOauthClient(\n clientId,\n foundryUrl,\n redirectUrl,\n {{#if scopes}}\n { scopes }\n {{/if}}\n);\n\n{{#if osdkPackage}}\n/**\n * Initialize the client to interact with the Ontology and Platform SDKs\n */\nexport const client: Client = createClient(foundryUrl, ontologyRid, auth);\n{{else}}\n/**\n * Initialize the client to interact with the Platform SDK\n *\n * If you later add an Ontology SDK to your application, follow the steps in \n * {{foundryUrl}}/docs/foundry/ontology-sdk/add-osdk-to-bootstrapped-repository/\n * to correctly set it up in this project.\n */\nexport const client: PlatformClient = createPlatformClient(foundryUrl, auth);\n{{/if}}\n\nexport default client;\n`\n}], [\"src/components/ErrorBoundary.module.css\", {\n \"type\": \"base64\",\n \"body\": \"LmNvbnRhaW5lciB7CiAgcGFkZGluZzogMnJlbTsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCi5tZXNzYWdlIHsKICBjb2xvcjogIzVmNmI3YzsKfQoKLnJldHJ5QnV0dG9uIHsKICBtYXJnaW4tdG9wOiAxcmVtOwogIHBhZGRpbmc6IDhweCAxNnB4OwogIGJvcmRlcjogMXB4IHNvbGlkICNlMWU0ZTg7CiAgYm9yZGVyLXJhZGl1czogNHB4OwogIGJhY2tncm91bmQ6ICNmZmY7CiAgY3Vyc29yOiBwb2ludGVyOwp9Cg==\"\n}], [\"src/components/ErrorBoundary.tsx\", {\n type: \"raw\",\n body: `import React from \"react\";\nimport css from \"./ErrorBoundary.module.css\";\n\ninterface ErrorBoundaryProps {\n children: React.ReactNode;\n}\n\ninterface ErrorBoundaryState {\n error: Error | null;\n}\n\nclass ErrorBoundary\n extends React.Component<ErrorBoundaryProps, ErrorBoundaryState>\n{\n constructor(props: ErrorBoundaryProps) {\n super(props);\n this.state = { error: null };\n }\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n return { error };\n }\n\n render(): React.ReactNode {\n if (this.state.error) {\n return (\n <div className={css.container}>\n <h2>Something went wrong</h2>\n <p className={css.message}>{this.state.error.message}</p>\n <button\n className={css.retryButton}\n onClick={() => this.setState({ error: null })}\n >\n Try again\n </button>\n </div>\n );\n }\n\n return this.props.children;\n }\n}\n\nexport default ErrorBoundary;\n`\n}], [\"src/components/Header.module.css\", {\n \"type\": \"base64\",\n \"body\": \"LmhlYWRlckNvbnRhaW5lciB7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBkaXNwbGF5OiBmbGV4OwogIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgZ2FwOiBjYWxjKHZhcigtLWJwLXN1cmZhY2Utc3BhY2luZykgKiAxMCk7Cn0KCi5oZWFkZXIgewogIG1hcmdpbjogMDsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCi5sb2dvcyB7CiAgZGlzcGxheTogZmxleDsKICBnYXA6IGNhbGModmFyKC0tYnAtc3VyZmFjZS1zcGFjaW5nKSAqIDgpOwp9CgoubG9nbyB7CiAgaGVpZ2h0OiA0OHB4OwogIHRyYW5zaXRpb246IGZpbHRlciAzMDBtczsKICB3aWxsLWNoYW5nZTogZmlsdGVyOwp9CgoubG9nbzpob3ZlciB7CiAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAgMmVtICM2NDZjZmZhYSk7Cn0K\"\n}], [\"src/components/Header.tsx\", {\n type: \"raw\",\n body: `import palantir from \"/palantir.svg\";\nimport react from \"/react.svg\";\n\nimport { H2, Link } from \"@blueprintjs/core\";\nimport React from \"react\";\nimport css from \"./Header.module.css\";\n\nfunction Header(): React.ReactElement {\n return (\n <header className={css.headerContainer}>\n <div className={css.logos}>\n <Link\n href=\"https://www.palantir.com/docs/foundry/ontology-sdk/overview/\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <img src={palantir} className={css.logo} alt=\"Palantir logo\" />\n </Link>\n <Link href=\"https://react.dev\" target=\"_blank\" rel=\"noreferrer\">\n <img src={react} className={css.logo} alt=\"React logo\" />\n </Link>\n </div>\n <H2 className={css.header}>Build your React application with Foundry!</H2>\n </header>\n );\n}\n\nexport default Header;\n`\n}], [\"src/components/Loading.tsx\", {\n type: \"raw\",\n body: `import React from \"react\";\n\nfunction Loading(): React.ReactElement {\n return (\n <div style={{ padding: \"2rem\", textAlign: \"center\", color: \"#5f6b7c\" }}>\n Loading...\n </div>\n );\n}\n\nexport default Loading;\n`\n}], [\"src/components/NextSteps.module.css\", {\n \"type\": \"base64\",\n \"body\": \"Lm5leHRTdGVwcyB7CiAgZGlzcGxheTogZmxleDsKICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogIGdhcDogY2FsYyh2YXIoLS1icC1zdXJmYWNlLXNwYWNpbmcpICogNCk7Cn0KCi5uZXh0U3RlcHNIZWFkZXIgewogIGFsaWduLXNlbGY6IGJhc2VsaW5lOwogIGZvbnQtd2VpZ2h0OiA2MDA7CiAgbWFyZ2luOiAwOwp9CgoubmV4dFN0ZXAgewogIGJvcmRlcjogMXB4IHNvbGlkICMxMTE0MTgyNjsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1icC1zdXJmYWNlLWJvcmRlci1yYWRpdXMpOwogIGRpc3BsYXk6IGZsZXg7CiAgZ2FwOiBjYWxjKHZhcigtLWJwLXN1cmZhY2Utc3BhY2luZykgKiAzKTsKICBwYWRkaW5nOiBjYWxjKHZhcigtLWJwLXN1cmZhY2Utc3BhY2luZykgKiA0KTsKfQoKLm5leHRTdGVwQ29udGVudCB7CiAgZGlzcGxheTogZmxleDsKICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogIGdhcDogdmFyKC0tYnAtc3VyZmFjZS1zcGFjaW5nKTsKICB0ZXh0LWFsaWduOiBsZWZ0Owp9CgoudGl0bGUgewogIGZvbnQtd2VpZ2h0OiA2MDA7CiAgbWFyZ2luOiAwOwp9Cgouc3VidGl0bGUgewogIGNvbG9yOiB2YXIoLS1icC10eXBvZ3JhcGh5LWNvbG9yLW11dGVkKTsKfQoKLmljb24gewogIGJhY2tncm91bmQtY29sb3I6IG9rbGNoKGZyb20gdmFyKC0tYnAtaW50ZW50LWRlZmF1bHQtcmVzdCkgbCBjIGggLyAxNSUpOwogIGJvcmRlcjogdmFyKC0tYnAtc3VyZmFjZS1ib3JkZXItd2lkdGgpIHNvbGlkCiAgICB2YXIoLS1icC1zdXJmYWNlLWJvcmRlci1jb2xvci1kZWZhdWx0KTsKICBib3JkZXItcmFkaXVzOiAzMHB4OwogIGNvbG9yOiB2YXIoLS1icC1pbnRlbnQtZGVmYXVsdC1yZXN0KTsKICBoZWlnaHQ6IDM0cHg7CiAgcGFkZGluZzogY2FsYyh2YXIoLS1icC1zdXJmYWNlLXNwYWNpbmcpICogMik7Cn0K\"\n}], [\"src/components/NextSteps.tsx.hbs\", {\n type: \"raw\",\n body: `import { Code, H5, H6, Icon, Link, Text } from \"@blueprintjs/core\";\nimport { type IconName } from \"@blueprintjs/icons\";\nimport React from \"react\";\nimport css from \"./NextSteps.module.css\";\n\nconst STEPS: INextStep[] = [\n {{^if osdkPackage}}\n {\n icon: \"cube\",\n title: \"Configure your Ontology and Platform SDKs\",\n subtitle: (\n <span>\n Use the Ontology SDK to interact with your Ontology and the Platform SDK\n to access Foundry APIs. Configure your SDKs from the{\" \"}\n <strong>Ontology SDK</strong> and <strong>Platform SDK</strong> tabs in\n Developer Console.\n </span>\n ),\n },\n {{/if}}\n {{^if applicationUrl}}\n {\n icon: \"cloud\",\n title: \"Request a subdomain to host your application with Foundry\",\n subtitle: (\n <span>\n Register a subdomain for your website on the{\" \"}\n <strong>Website hosting</strong> tab in Developer Console. Then, add\n this subdomain to your redirect URLs on the{\" \"}\n <strong>OAuth & scopes</strong> tab and update your{\" \"}\n <Code>.env.production</Code> file.\n </span>\n ),\n },\n {{/if}}\n {\n icon: \"rocket-slant\",\n title: \"Deploy your application\",\n subtitle: (\n <span>\n To deploy a new version of your application, tag a new version of your\n repository or use the command line to run{\" \"}\n <Code>npx @osdk/cli@latest site deploy</Code>.{\" \"}\n <Link\n href=\"https://www.npmjs.com/package/@osdk/cli\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n Learn more.\n </Link>\n </span>\n ),\n },\n];\n\nfunction NextSteps(): React.ReactElement {\n return (\n <div className={css.nextSteps}>\n <H5 className={css.nextStepsHeader}>Next steps</H5>\n {STEPS.map((step) => (\n <NextStep\n key={step.title}\n icon={step.icon}\n title={step.title}\n subtitle={step.subtitle}\n />\n ))}\n </div>\n );\n}\n\ninterface INextStep {\n icon: IconName;\n title: string;\n subtitle: React.ReactElement;\n}\n\nfunction NextStep({ icon, title, subtitle }: INextStep): React.ReactElement {\n return (\n <div className={css.nextStep}>\n <div className={css.icon}>\n <Icon icon={icon} aria-label={icon} />\n </div>\n <div className={css.nextStepContent}>\n <H6 className={css.title}>{title}</H6>\n <Text className={css.subtitle}>{subtitle}</Text>\n </div>\n </div>\n );\n}\n\nexport default NextSteps;\n`\n}], [\"src/components/Osdk.module.osdk.css\", {\n \"type\": \"base64\",\n \"body\": \"Lm9zZGsgewogIGFsaWduLXNlbGY6IGJhc2VsaW5lOwogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgZGlzcGxheTogZmxleDsKICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgbWF4LXdpZHRoOiA4MDBweDsKICB3aWR0aDogMTAwJTsKfQo=\"\n}], [\"src/components/Osdk.tsx.osdk.hbs\", {\n type: \"raw\",\n body: `import { AnchorButton, Icon, Tag } from \"@blueprintjs/core\";\nimport React from \"react\";\nimport css from \"./Osdk.module.css\";\n\nconst DOCUMENTATION_URL =\n \"{{foundryUrl}}/workspace/developer-console/app/{{application}}/docs/guide/loading-data?language=typescript\";\n\nfunction Osdk(): React.ReactElement {\n return (\n <div className={css.osdk}>\n <div>\n <span>OSDK: </span>\n <Tag minimal={true}>{{osdkPackage}}</Tag>\n </div>\n <AnchorButton\n href={DOCUMENTATION_URL}\n target=\"_blank\"\n rel=\"noreferrer\"\n variant=\"minimal\"\n icon={<Icon icon=\"book\" aria-label=\"Book icon\"></Icon>}\n >\n View documentation\n </AnchorButton>\n </div>\n );\n}\n\nexport default Osdk;\n`\n}], [\"src/env.test.ts\", {\n \"type\": \"base64\",\n \"body\": \"aW1wb3J0IHsgbG9hZEVudiB9IGZyb20gInZpdGUiOwppbXBvcnQgeyBleHBlY3QsIHRlc3QgfSBmcm9tICJ2aXRlc3QiOwoKY29uc3QgRU5WX1ZBUlMgPSBbCiAgIlZJVEVfRk9VTkRSWV9BUElfVVJMIiwKICAiVklURV9GT1VORFJZX0NMSUVOVF9JRCIsCiAgIlZJVEVfRk9VTkRSWV9SRURJUkVDVF9VUkwiLApdOwoKZm9yIChjb25zdCBlbnZWYXIgb2YgRU5WX1ZBUlMpIHsKICB0ZXN0LnNraXBJZihwcm9jZXNzLmVudi5WRVJJRllfRU5WX1BST0RVQ1RJT04gIT09ICJ0cnVlIikoCiAgICBgcHJvZHVjdGlvbiBlbnYgc2hvdWxkIGNvbnRhaW4gJHtlbnZWYXJ9YCwKICAgICgpID0+IHsKICAgICAgY29uc3QgZW52ID0gbG9hZEVudigicHJvZHVjdGlvbiIsIHByb2Nlc3MuY3dkKCkpOwogICAgICBleHBlY3QoZW52W2VudlZhcl0sIGAke2VudlZhcn0gc2hvdWxkIGJlIGRlZmluZWRgKS50b0JlRGVmaW5lZCgpOwogICAgICBleHBlY3QoCiAgICAgICAgZW52W2VudlZhcl0sCiAgICAgICAgYCR7ZW52VmFyfSBzaG91bGQgbm90IGNvbnRhaW4gcGxhY2Vob2xkZXIgdmFsdWVgLAogICAgICApLm5vdC50b01hdGNoKC88Lio+Lyk7CiAgICB9LAogICk7Cn0K\"\n}], [\"src/index.css\", {\n \"type\": \"base64\",\n \"body\": \"LyogQmx1ZXByaW50SlMgKi8KQGltcG9ydCAibm9ybWFsaXplLmNzcyI7CkBpbXBvcnQgIkBibHVlcHJpbnRqcy9jb3JlL2xpYi9jc3MvYmx1ZXByaW50LmNzcyI7CkBpbXBvcnQgIkBibHVlcHJpbnRqcy9pY29ucy9saWIvY3NzL2JsdWVwcmludC1pY29ucy5jc3MiOwoKOnJvb3QgewogIGZvbnQtZmFtaWx5OgogICAgIlNvdXJjZSBTYW5zIFBybyIsIHN5c3RlbS11aSwgQXZlbmlyLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOwogIGZvbnQtc3ludGhlc2lzOiBub25lOwogIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7CiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsKfQoKI3Jvb3QtY29udGFpbmVyIHsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGRpc3BsYXk6IGZsZXg7CiAgZmxleDogMTsKfQoKI3Jvb3QgewogIG1hcmdpbjogMCBhdXRvOwogIG1heC13aWR0aDogMTI4MHB4OwogIHBhZGRpbmc6IGNhbGModmFyKC0tYnAtc3VyZmFjZS1zcGFjaW5nKSAqIDgpOwp9Cgpib2R5IHsKICBkaXNwbGF5OiBmbGV4OwogIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgbWFyZ2luOiAwOwogIG1pbi1oZWlnaHQ6IDEwMHZoOwp9Cg==\"\n}], [\"src/main.tsx\", {\n type: \"raw\",\n body: `import { Suspense } from \"react\";\nimport ReactDOM from \"react-dom/client\";\nimport { RouterProvider } from \"react-router-dom\";\nimport \"./index.css\";\nimport ErrorBoundary from \"@/components/ErrorBoundary\";\nimport Loading from \"@/components/Loading\";\nimport { router } from \"@/router\";\n\nconst rootElement = document.getElementById(\"root\");\nif (!rootElement) {\n throw new Error(\"Root element not found\");\n}\n\nReactDOM.createRoot(rootElement).render(\n <ErrorBoundary>\n <Suspense fallback={<Loading />}>\n <RouterProvider router={router} />\n </Suspense>\n </ErrorBoundary>,\n);\n`\n}], [\"src/router.tsx\", {\n type: \"raw\",\n body: `import AuthCallback from \"@/AuthCallback\";\nimport Home from \"@/Home\";\nimport { createBrowserRouter } from \"react-router-dom\";\n\nexport const router = createBrowserRouter(\n [\n {\n path: \"/\",\n element: <Home />,\n },\n {\n // This is the route defined in your application's redirect URL\n path: \"/auth/callback\",\n element: <AuthCallback />,\n },\n ],\n { basename: import.meta.env.BASE_URL },\n);\n`\n}], [\"src/vite-env.d.ts\", {\n \"type\": \"base64\",\n \"body\": \"Ly8vIDxyZWZlcmVuY2UgdHlwZXM9InZpdGUvY2xpZW50IiAvPgo=\"\n}], [\"tsconfig.json\", {\n \"type\": \"base64\",\n \"body\": \"ewogICJjb21waWxlck9wdGlvbnMiOiB7CiAgICAidGFyZ2V0IjogIkVTMjAyMCIsCiAgICAidXNlRGVmaW5lRm9yQ2xhc3NGaWVsZHMiOiB0cnVlLAogICAgImxpYiI6IFsiRVMyMDIwIiwgIkRPTSIsICJET00uSXRlcmFibGUiXSwKICAgICJtb2R1bGUiOiAiRVNOZXh0IiwKICAgICJza2lwTGliQ2hlY2siOiB0cnVlLAoKICAgIC8qIEJ1bmRsZXIgbW9kZSAqLwogICAgIm1vZHVsZVJlc29sdXRpb24iOiAiYnVuZGxlciIsCiAgICAiYWxsb3dJbXBvcnRpbmdUc0V4dGVuc2lvbnMiOiB0cnVlLAogICAgInJlc29sdmVKc29uTW9kdWxlIjogdHJ1ZSwKICAgICJpc29sYXRlZE1vZHVsZXMiOiB0cnVlLAogICAgIm5vRW1pdCI6IHRydWUsCiAgICAianN4IjogInJlYWN0LWpzeCIsCgogICAgLyogTGludGluZyAqLwogICAgInN0cmljdCI6IHRydWUsCiAgICAibm9VbnVzZWRMb2NhbHMiOiB0cnVlLAogICAgIm5vVW51c2VkUGFyYW1ldGVycyI6IHRydWUsCiAgICAibm9GYWxsdGhyb3VnaENhc2VzSW5Td2l0Y2giOiB0cnVlLAoKICAgIC8qIFBhdGggYWxpYXNlcyAqLwogICAgImJhc2VVcmwiOiAiLiIsCiAgICAicGF0aHMiOiB7CiAgICAgICJALyoiOiBbIi4vc3JjLyoiXQogICAgfQogIH0sCiAgImluY2x1ZGUiOiBbInNyYyJdLAogICJyZWZlcmVuY2VzIjogW3sgInBhdGgiOiAiLi90c2NvbmZpZy5ub2RlLmpzb24iIH1dCn0K\"\n}], [\"tsconfig.node.json\", {\n \"type\": \"base64\",\n \"body\": \"ewogICJjb21waWxlck9wdGlvbnMiOiB7CiAgICAiY29tcG9zaXRlIjogdHJ1ZSwKICAgICJza2lwTGliQ2hlY2siOiB0cnVlLAogICAgIm1vZHVsZSI6ICJFU05leHQiLAogICAgIm1vZHVsZVJlc29sdXRpb24iOiAiYnVuZGxlciIsCiAgICAiYWxsb3dTeW50aGV0aWNEZWZhdWx0SW1wb3J0cyI6IHRydWUKICB9LAogICJpbmNsdWRlIjogWyJ2aXRlLmNvbmZpZy50cyJdCn0K\"\n}], [\"vite.config.ts.hbs\", {\n type: \"raw\",\n body: `import path from \"node:path\";\nimport react from \"@vitejs/plugin-react\";\nimport { defineConfig } from \"vite\";\n\n// https://vitejs.dev/config/\nexport default defineConfig(({ mode }) => { \n return {\n plugins: [react()],\n resolve: {\n alias: {\n \"@\": path.resolve(__dirname, \"./src\"),\n },\n },\n server: {\n port: 8080,\n {{#if corsProxy}}\n proxy: {\n \"^(/multipass/api|/api)\": {\n target: \"{{foundryUrl}}\",\n changeOrigin: true,\n secure: true,\n },\n },\n {{/if}}\n },\n define: {\n \"process.env.NODE_ENV\": JSON.stringify(mode),\n },\n };\n});\n`\n}]]);"]}
|