@osdk/create-app 0.20.0-beta.2 → 0.20.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,408 @@
1
+ // ../create-app.template.next-static-export.v2/build/esm/generatedNoCheck/index.js
2
+ var files = /* @__PURE__ */ new Map([[".eslintrc.json", {
3
+ "type": "base64",
4
+ "body": "ewogICJyb290IjogdHJ1ZSwKICAiZXh0ZW5kcyI6ICJuZXh0L2NvcmUtd2ViLXZpdGFscyIKfQo="
5
+ }], ["README.md.hbs", {
6
+ type: "raw",
7
+ body: `# {{project}}
8
+
9
+ This 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 Next.js. Check out the [Next.js](https://nextjs.org/docs) docs for further configuration.
10
+
11
+ ## Developing
12
+
13
+ Run the following command or equivalent with your preferred package manager to start a local development server on \`http://localhost:8080\`:
14
+
15
+ \`\`\`sh
16
+ npm run dev
17
+ \`\`\`
18
+
19
+ Development configuration is stored in \`.env.development\`.
20
+
21
+ {{#if corsProxy}}
22
+ In 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.
23
+ {{else}}
24
+ In 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.
25
+ {{/if}}
26
+
27
+ ## Deploying
28
+
29
+ Run the following command or equivalent with your preferred package manager to create a production build of your application:
30
+
31
+ \`\`\`sh
32
+ npm run build
33
+ \`\`\`
34
+
35
+ Production configuration is stored in \`.env.production\`.
36
+
37
+ If you did not fill in the URL your production application will be hosted on you will need to fill in the \`NEXT_PUBLIC_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\`.
38
+
39
+ In 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.
40
+
41
+ A \`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.
42
+
43
+ ### Content Security Policy (CSP)
44
+
45
+ \u26A0\uFE0F Building this Next.js application will produce .html files that will require \`'unsafe-inline'\` in the \`script-src\` directive of your Content Security Policy. See https://github.com/vercel/next.js/discussions/54152 for more info.
46
+ `
47
+ }], [".gitignore", {
48
+ type: "raw",
49
+ body: `# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
50
+
51
+ # dependencies
52
+ /node_modules
53
+ /.pnp
54
+ .pnp.js
55
+ .yarn/install-state.gz
56
+
57
+ # testing
58
+ /coverage
59
+
60
+ # next.js
61
+ /.next
62
+ /out
63
+
64
+ # production
65
+ /build
66
+
67
+ # misc
68
+ .DS_Store
69
+ *.pem
70
+
71
+ # debug
72
+ npm-debug.log*
73
+ yarn-debug.log*
74
+ yarn-error.log*
75
+
76
+ # local env files
77
+ .env*.local
78
+
79
+ # vercel
80
+ .vercel
81
+
82
+ # typescript
83
+ *.tsbuildinfo
84
+ next-env.d.ts
85
+ `
86
+ }], ["next.config.js.hbs", {
87
+ type: "raw",
88
+ body: `/** @type {import('next').NextConfig} */
89
+ const nextConfig = {
90
+ reactStrictMode: false,
91
+ output: "export",
92
+ {{#if corsProxy}}
93
+ // Rewrites are used to proxy requests during local development only for CORS
94
+ // and will warn when using this feature together with export.
95
+ rewrites: () => [
96
+ {
97
+ source: "/:prefix(multipass/api|api)/:path*",
98
+ destination: "{{foundryUrl}}/:prefix/:path*",
99
+ },
100
+ ],
101
+ {{/if}}
102
+ };
103
+
104
+ module.exports = nextConfig;
105
+ `
106
+ }], ["package.json.hbs", {
107
+ type: "raw",
108
+ body: `{
109
+ "name": "{{project}}",
110
+ "private": true,
111
+ "version": "0.0.0",
112
+ "scripts": {
113
+ "dev": "next dev -p 8080",
114
+ "build": "next build",
115
+ "start": "next start",
116
+ "lint": "next lint",
117
+ "test": "vitest run"
118
+ },
119
+ "dependencies": {
120
+ "{{osdkPackage}}": "latest",
121
+ "@osdk/client": "latest",
122
+ "@osdk/oauth": "latest",
123
+ "next": "14.2.10",
124
+ "react": "^18",
125
+ "react-dom": "^18"
126
+ },
127
+ "devDependencies": {
128
+ "@next/env": "^14.2.7",
129
+ "@types/node": "^20",
130
+ "@types/react": "^18",
131
+ "@types/react-dom": "^18",
132
+ "eslint": "^8.57.0",
133
+ "eslint-config-next": "^14.2.3",
134
+ "typescript": "^5.5.4",
135
+ "vitest": "^2.1.2"
136
+ }
137
+ }`
138
+ }], ["public/next.svg", {
139
+ "type": "base64",
140
+ "body": "PHN2ZyB3aWR0aD0iMTgwIiBoZWlnaHQ9IjE4MCIgdmlld0JveD0iMCAwIDE4MCAxODAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxtYXNrIGlkPSJtYXNrMF80MDhfMTM0IiBzdHlsZT0ibWFzay10eXBlOmFscGhhIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSIwIiB5PSIwIiB3aWR0aD0iMTgwIiBoZWlnaHQ9IjE4MCI+CjxjaXJjbGUgY3g9IjkwIiBjeT0iOTAiIHI9IjkwIiBmaWxsPSJibGFjayIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazBfNDA4XzEzNCkiPgo8Y2lyY2xlIGN4PSI5MCIgY3k9IjkwIiByPSI5MCIgZmlsbD0iYmxhY2siLz4KPHBhdGggZD0iTTE0OS41MDggMTU3LjUyTDY5LjE0MiA1NEg1NFYxMjUuOTdINjYuMTEzNlY2OS4zODM2TDEzOS45OTkgMTY0Ljg0NUMxNDMuMzMzIDE2Mi42MTQgMTQ2LjUwOSAxNjAuMTY1IDE0OS41MDggMTU3LjUyWiIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyXzQwOF8xMzQpIi8+CjxyZWN0IHg9IjExNSIgeT0iNTQiIHdpZHRoPSIxMiIgaGVpZ2h0PSI3MiIgZmlsbD0idXJsKCNwYWludDFfbGluZWFyXzQwOF8xMzQpIi8+CjwvZz4KPGRlZnM+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQwX2xpbmVhcl80MDhfMTM0IiB4MT0iMTA5IiB5MT0iMTE2LjUiIHgyPSIxNDQuNSIgeTI9IjE2MC41IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IndoaXRlIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0id2hpdGUiIHN0b3Atb3BhY2l0eT0iMCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MV9saW5lYXJfNDA4XzEzNCIgeDE9IjEyMSIgeTE9IjU0IiB4Mj0iMTIwLjc5OSIgeTI9IjEwNi44NzUiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0id2hpdGUiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSJ3aGl0ZSIgc3RvcC1vcGFjaXR5PSIwIi8+CjwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KPC9zdmc+Cg=="
141
+ }], ["public/palantir.svg", {
142
+ "type": "base64",
143
+ "body": "PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00LjEwNzY4IDYuMDY0MDFDNC4xMDc2OCA4LjM3NzEgNS45NjcwMiAxMC4yNTI2IDguMjYwNTkgMTAuMjUyNkMxMC41NTQzIDEwLjI1MjYgMTIuNDEzOCA4LjM3NzEgMTIuNDEzOCA2LjA2NDAxQzEyLjQxMzggMy43NTA4IDEwLjU1NDMgMS44NzU1MyA4LjI2MDU5IDEuODc1NTNDNS45NjcwMiAxLjg3NTUzIDQuMTA3NjggMy43NTA4IDQuMTA3NjggNi4wNjQwMVpNOC4yNjA5MyAxMy45MjNMMTMuNjI5OSAxMS41ODQ4TDE0LjUyMTcgMTMuMzA5MUw4LjI2MDkzIDE2TDIgMTMuMzA5MUwyLjg5MjAxIDExLjU4NDhMOC4yNjA5MyAxMy45MjNaTTguMjYxMDEgMEM0Ljk0MzY3IDAgMi4yNTQ0MiAyLjcxMjI4IDIuMjU0NDIgNi4wNTgwM0MyLjI1NDQyIDkuNDAzNzggNC45NDM2NyAxMi4xMTU5IDguMjYxMDEgMTIuMTE1OUMxMS41NzgyIDEyLjExNTkgMTQuMjY3NiA5LjQwMzc4IDE0LjI2NzYgNi4wNTgwM0MxNC4yNjc2IDIuNzEyMjggMTEuNTc4MiAwIDguMjYxMDEgMFoiIGZpbGw9IiMxMTE0MTgiLz4KPC9zdmc+Cg=="
144
+ }], ["src/app/auth/callback/page.tsx", {
145
+ type: "raw",
146
+ body: `"use client";
147
+ import { getAuth } from "@/lib/client";
148
+ import { useRouter } from "next/navigation";
149
+ import { useEffect, useState } from "react";
150
+
151
+ /**
152
+ * Component to render at \`/auth/callback\`
153
+ * This calls signIn() again to save the token, and then navigates the user back to the home page.
154
+ */
155
+ function AuthCallback() {
156
+ const [error, setError] = useState<string | undefined>(undefined);
157
+ const router = useRouter();
158
+
159
+ // This effect conflicts with React 18 strict mode in development
160
+ // https://react.dev/learn/synchronizing-with-effects#how-to-handle-the-effect-firing-twice-in-development
161
+ useEffect(() => {
162
+ getAuth()
163
+ .signIn()
164
+ .then(() => router.replace("/"))
165
+ .catch((e: unknown) => setError((e as Error).message ?? e));
166
+ }, [router]);
167
+ return <div>{error != null ? error : "Authenticating\u2026"}</div>;
168
+ }
169
+
170
+ export default AuthCallback;
171
+ `
172
+ }], ["src/app/globals.css", {
173
+ "type": "base64",
174
+ "body": "OnJvb3QgewogIGZvbnQtZmFtaWx5OiBJbnRlciwgc3lzdGVtLXVpLCBBdmVuaXIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgbGluZS1oZWlnaHQ6IDEuNTsKICBmb250LXdlaWdodDogNDAwOwoKICBjb2xvci1zY2hlbWU6IGxpZ2h0IGRhcms7CiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nyk7CiAgYmFja2dyb3VuZC1jb2xvcjogIzI0MjQyNDsKCiAgZm9udC1zeW50aGVzaXM6IG5vbmU7CiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTsKICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwp9Cgojcm9vdC1jb250YWluZXIgewogIGRpc3BsYXk6IGZsZXg7CiAgZmxleDogMTsKICBhbGlnbi1pdGVtczogY2VudGVyOwp9Cgojcm9vdCB7CiAgbWF4LXdpZHRoOiAxMjgwcHg7CiAgbWFyZ2luOiAwIGF1dG87CiAgcGFkZGluZzogMnJlbTsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCmEgewogIGZvbnQtd2VpZ2h0OiA1MDA7CiAgY29sb3I6ICM2NDZjZmY7CiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0Owp9CmE6aG92ZXIgewogIGNvbG9yOiAjNTM1YmYyOwp9Cgpib2R5IHsKICBtYXJnaW46IDA7CiAgZGlzcGxheTogZmxleDsKICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogIG1pbi13aWR0aDogMzIwcHg7CiAgbWluLWhlaWdodDogMTAwdmg7Cn0KCmgxIHsKICBmb250LXNpemU6IDMuMmVtOwogIGxpbmUtaGVpZ2h0OiAxLjE7Cn0KCmJ1dHRvbiB7CiAgYm9yZGVyLXJhZGl1czogOHB4OwogIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogIHBhZGRpbmc6IDAuNmVtIDEuMmVtOwogIGZvbnQtc2l6ZTogMWVtOwogIGZvbnQtd2VpZ2h0OiA1MDA7CiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgYmFja2dyb3VuZC1jb2xvcjogIzFhMWExYTsKICBjdXJzb3I6IHBvaW50ZXI7CiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMjVzOwp9CmJ1dHRvbjpob3ZlciB7CiAgYm9yZGVyLWNvbG9yOiAjNjQ2Y2ZmOwp9CmJ1dHRvbjpmb2N1cywKYnV0dG9uOmZvY3VzLXZpc2libGUgewogIG91dGxpbmU6IDRweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjsKfQoKQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogbGlnaHQpIHsKICA6cm9vdCB7CiAgICBjb2xvcjogIzIxMzU0NzsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7CiAgfQogIGE6aG92ZXIgewogICAgY29sb3I6ICM3NDdiZmY7CiAgfQogIGJ1dHRvbiB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5OwogIH0KfQo="
175
+ }], ["src/app/icon.svg", {
176
+ "type": "base64",
177
+ "body": "PHN2ZyB3aWR0aD0iMTgwIiBoZWlnaHQ9IjE4MCIgdmlld0JveD0iMCAwIDE4MCAxODAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxtYXNrIGlkPSJtYXNrMF80MDhfMTM0IiBzdHlsZT0ibWFzay10eXBlOmFscGhhIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSIwIiB5PSIwIiB3aWR0aD0iMTgwIiBoZWlnaHQ9IjE4MCI+CjxjaXJjbGUgY3g9IjkwIiBjeT0iOTAiIHI9IjkwIiBmaWxsPSJibGFjayIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazBfNDA4XzEzNCkiPgo8Y2lyY2xlIGN4PSI5MCIgY3k9IjkwIiByPSI5MCIgZmlsbD0iYmxhY2siLz4KPHBhdGggZD0iTTE0OS41MDggMTU3LjUyTDY5LjE0MiA1NEg1NFYxMjUuOTdINjYuMTEzNlY2OS4zODM2TDEzOS45OTkgMTY0Ljg0NUMxNDMuMzMzIDE2Mi42MTQgMTQ2LjUwOSAxNjAuMTY1IDE0OS41MDggMTU3LjUyWiIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyXzQwOF8xMzQpIi8+CjxyZWN0IHg9IjExNSIgeT0iNTQiIHdpZHRoPSIxMiIgaGVpZ2h0PSI3MiIgZmlsbD0idXJsKCNwYWludDFfbGluZWFyXzQwOF8xMzQpIi8+CjwvZz4KPGRlZnM+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQwX2xpbmVhcl80MDhfMTM0IiB4MT0iMTA5IiB5MT0iMTE2LjUiIHgyPSIxNDQuNSIgeTI9IjE2MC41IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IndoaXRlIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0id2hpdGUiIHN0b3Atb3BhY2l0eT0iMCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MV9saW5lYXJfNDA4XzEzNCIgeDE9IjEyMSIgeTE9IjU0IiB4Mj0iMTIwLjc5OSIgeTI9IjEwNi44NzUiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0id2hpdGUiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSJ3aGl0ZSIgc3RvcC1vcGFjaXR5PSIwIi8+CjwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KPC9zdmc+Cg=="
178
+ }], ["src/app/layout.module.css", {
179
+ "type": "base64",
180
+ "body": "LmxvZ28gewogIGhlaWdodDogNmVtOwogIHdpZHRoOiBhdXRvOwogIHBhZGRpbmc6IDEuNWVtOwogIHdpbGwtY2hhbmdlOiBmaWx0ZXI7CiAgdHJhbnNpdGlvbjogZmlsdGVyIDMwMG1zOwp9CgoubG9nbzpob3ZlciB7CiAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAgMmVtICM2NDZjZmZhYSk7Cn0K"
181
+ }], ["src/app/layout.tsx", {
182
+ type: "raw",
183
+ body: `import type { Metadata } from "next";
184
+ import { Inter } from "next/font/google";
185
+ import Image from "next/image";
186
+ import css from "./layout.module.css";
187
+ import "./globals.css";
188
+
189
+ const inter = Inter({ subsets: ["latin"] });
190
+
191
+ export const metadata: Metadata = {
192
+ title: "Ontology SDK + Next.js",
193
+ description: "Generated by @osdk/create-app",
194
+ };
195
+
196
+ function RootLayout({ children }: { children: React.ReactNode }) {
197
+ return (
198
+ <html lang="en">
199
+ <body className={inter.className}>
200
+ <div id="root-container">
201
+ <div id="root">
202
+ <a
203
+ href="https://www.palantir.com/docs/foundry/ontology-sdk/overview/"
204
+ target="_blank"
205
+ >
206
+ <Image
207
+ src="/palantir.svg"
208
+ alt="Palantir logo"
209
+ className={css.logo}
210
+ width={16}
211
+ height={16}
212
+ priority
213
+ />
214
+ </a>
215
+ <a href="https://nextjs.org/" target="_blank">
216
+ <Image
217
+ src="/next.svg"
218
+ alt="Next logo"
219
+ className={css.logo}
220
+ width={16}
221
+ height={16}
222
+ priority
223
+ />
224
+ </a>
225
+ {children}
226
+ </div>
227
+ </div>
228
+ </body>
229
+ </html>
230
+ );
231
+ }
232
+
233
+ export default RootLayout;
234
+ `
235
+ }], ["src/app/login/page.tsx", {
236
+ type: "raw",
237
+ body: `"use client";
238
+ import { getAuth } from "@/lib/client";
239
+ import { useRouter } from "next/navigation";
240
+ import { useCallback, useEffect, useState } from "react";
241
+
242
+ function Login() {
243
+ const [isLoggingIn, setIsLoggingIn] = useState(false);
244
+ const [error, setError] = useState<string | undefined>(undefined);
245
+ const router = useRouter();
246
+ const [token, setToken] = useState<string | undefined>(undefined);
247
+ useEffect(() => {
248
+ setToken(getAuth().getTokenOrUndefined());
249
+ }, []);
250
+
251
+ const handleLogin = useCallback(async () => {
252
+ setIsLoggingIn(true);
253
+ try {
254
+ // Initiate the OAuth flow, which will redirect the user to log into Foundry
255
+ // Once the login has completed, the user will be redirected back to the route defined via the
256
+ // FOUNDRY_REDIRECT_URL variable in .env.development
257
+ await getAuth().signIn();
258
+ } catch (e: unknown) {
259
+ console.error(e);
260
+ setError((e as Error).message ?? e);
261
+ } finally {
262
+ setIsLoggingIn(false);
263
+ }
264
+ }, []);
265
+
266
+ useEffect(() => {
267
+ // If the token exists but a user tries to load /login, redirect to the home page instead
268
+ if (token != null) {
269
+ router.replace("/");
270
+ }
271
+ }, [token, router]);
272
+
273
+ return (
274
+ <div>
275
+ <h1>Ontology SDK</h1>
276
+ <button onClick={handleLogin}>
277
+ {isLoggingIn ? "Logging in\u2026" : "Log in "}
278
+ </button>
279
+ {error && <div>Unable to log in: {error}</div>}
280
+ </div>
281
+ );
282
+ }
283
+
284
+ export default Login;
285
+ `
286
+ }], ["src/app/page.module.css", {
287
+ "type": "base64",
288
+ "body": "Lm1ldGhvZHMgewogIHBhZGRpbmc6IDJlbTsKICBnYXA6IDJlbTsKICBkaXNwbGF5OiBmbGV4OwogIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgZmxleC13cmFwOiB3cmFwOwp9Cg=="
289
+ }], ["src/app/page.tsx.hbs", {
290
+ type: "raw",
291
+ body: `"use client";
292
+ import { $Objects, $Actions, $Queries } from "{{osdkPackage}}";
293
+ import useAuthenticated from "@/lib/useAuthenticated";
294
+ import css from "./page.module.css";
295
+
296
+ function Home() {
297
+ const authenticated = useAuthenticated();
298
+ if (!authenticated) {
299
+ return null;
300
+ }
301
+
302
+ const objectApiNames = Object.keys($Objects);
303
+ const actionApiNames = Object.keys($Actions);
304
+ const queryApiNames = Object.keys($Queries);
305
+
306
+ return (
307
+ <div>
308
+ <h1>{{osdkPackage}}</h1>
309
+ <p>
310
+ Welcome to your Ontology SDK! Try using any of the following methods
311
+ now.
312
+ </p>
313
+ <div className={css.methods}>
314
+ <div>
315
+ <h2>Objects ({objectApiNames.length})</h2>
316
+ {objectApiNames.map((objectApiName) => (
317
+ <pre key={objectApiName}>
318
+ $Objects.{objectApiName}
319
+ </pre>
320
+ ))}
321
+ </div>
322
+ <div>
323
+ <h2>Actions ({actionApiNames.length})</h2>
324
+ {actionApiNames.map((actionApiName) => (
325
+ <pre key={actionApiName}>
326
+ $Actions.{actionApiName}
327
+ </pre>
328
+ ))}
329
+ </div>
330
+ <div>
331
+ <h2>Queries ({queryApiNames.length})</h2>
332
+ {queryApiNames.map((queryApiName) => (
333
+ <pre key={queryApiName}>
334
+ $Queries.{queryApiName}
335
+ </pre>
336
+ ))}
337
+ </div>
338
+ </div>
339
+ </div>
340
+ );
341
+ }
342
+
343
+ export default Home;
344
+ `
345
+ }], ["src/env.test.ts", {
346
+ "type": "base64",
347
+ "body": "aW1wb3J0IHsgbG9hZEVudkNvbmZpZyB9IGZyb20gIkBuZXh0L2VudiI7CmltcG9ydCB7IGFmdGVyRWFjaCwgYmVmb3JlRWFjaCwgZXhwZWN0LCB0ZXN0LCB2aSB9IGZyb20gInZpdGVzdCI7Cgpjb25zdCBFTlZfVkFSUyA9IFsKICAiTkVYVF9QVUJMSUNfRk9VTkRSWV9BUElfVVJMIiwKICAiTkVYVF9QVUJMSUNfRk9VTkRSWV9DTElFTlRfSUQiLAogICJORVhUX1BVQkxJQ19GT1VORFJZX1JFRElSRUNUX1VSTCIsCl07CgpiZWZvcmVFYWNoKCgpID0+IHsKICB2aS5zdHViRW52KCJOT0RFX0VOViIsICJwcm9kdWN0aW9uIik7Cn0pOwoKYWZ0ZXJFYWNoKCgpID0+IHsKICB2aS51bnN0dWJBbGxFbnZzKCk7Cn0pOwoKZm9yIChjb25zdCBlbnZWYXIgb2YgRU5WX1ZBUlMpIHsKICB0ZXN0LnNraXBJZihwcm9jZXNzLmVudi5WRVJJRllfRU5WX1BST0RVQ1RJT04gIT09ICJ0cnVlIikoCiAgICBgcHJvZHVjdGlvbiBlbnYgc2hvdWxkIGNvbnRhaW4gJHtlbnZWYXJ9YCwKICAgICgpID0+IHsKICAgICAgY29uc3QgZW52ID0gbG9hZEVudkNvbmZpZyhwcm9jZXNzLmN3ZCgpKTsKICAgICAgZXhwZWN0KAogICAgICAgIGVudi5jb21iaW5lZEVudltlbnZWYXJdLAogICAgICAgIGAke2VudlZhcn0gc2hvdWxkIGJlIGRlZmluZWRgLAogICAgICApLnRvQmVEZWZpbmVkKCk7CiAgICAgIGV4cGVjdCgKICAgICAgICBlbnYuY29tYmluZWRFbnZbZW52VmFyXSwKICAgICAgICBgJHtlbnZWYXJ9IHNob3VsZCBub3QgY29udGFpbiBwbGFjZWhvbGRlciB2YWx1ZWAsCiAgICAgICkubm90LnRvTWF0Y2goLzwuKj4vKTsKICAgIH0sCiAgKTsKfQo="
348
+ }], ["src/lib/client.ts.hbs", {
349
+ type: "raw",
350
+ body: `import type { Client } from "@osdk/client";
351
+ import type { PublicOauthClient } from "@osdk/oauth";
352
+ import { createClient } from "@osdk/client";
353
+ import { $ontologyRid } from "{{osdkPackage}}";
354
+ import { createPublicOauthClient } from "@osdk/oauth";
355
+
356
+ const url = process.env.NEXT_PUBLIC_FOUNDRY_API_URL;
357
+ const clientId = process.env.NEXT_PUBLIC_FOUNDRY_CLIENT_ID;
358
+ const redirectUrl = process.env.NEXT_PUBLIC_FOUNDRY_REDIRECT_URL;
359
+ checkEnv(url, "NEXT_PUBLIC_FOUNDRY_API_URL");
360
+ checkEnv(clientId, "NEXT_PUBLIC_FOUNDRY_CLIENT_ID");
361
+ checkEnv(redirectUrl, "NEXT_PUBLIC_FOUNDRY_REDIRECT_URL");
362
+
363
+ function checkEnv(
364
+ value: string | undefined,
365
+ name: string,
366
+ ): asserts value is string {
367
+ if (value == null) {
368
+ throw new Error(\`Missing environment variable: \${name}\`);
369
+ }
370
+ }
371
+
372
+ // Lazily configure the auth and client to prevent them from being used in pre-rendering
373
+ let auth: PublicOauthClient | null = null;
374
+ let client: Client | null = null;
375
+
376
+ export const getAuth = () => {
377
+ if (auth == null) {
378
+ auth = createPublicOauthClient(
379
+ clientId,
380
+ url,
381
+ redirectUrl,
382
+ );
383
+ }
384
+ return auth;
385
+ }
386
+
387
+ export const getClient = () => {
388
+ if (client == null) {
389
+ client = createClient(
390
+ url,
391
+ $ontologyRid,
392
+ getAuth(),
393
+ );
394
+ }
395
+ return client;
396
+ }
397
+ `
398
+ }], ["src/lib/useAuthenticated.ts", {
399
+ "type": "base64",
400
+ "body": "aW1wb3J0IHsgdXNlUm91dGVyIH0gZnJvbSAibmV4dC9uYXZpZ2F0aW9uIjsKaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gInJlYWN0IjsKaW1wb3J0IHsgZ2V0QXV0aCB9IGZyb20gIi4vY2xpZW50IjsKCmZ1bmN0aW9uIHVzZUF1dGhlbnRpY2F0ZWQoKSB7CiAgY29uc3Qgcm91dGVyID0gdXNlUm91dGVyKCk7CiAgY29uc3QgW3Rva2VuLCBzZXRUb2tlbl0gPSB1c2VTdGF0ZTxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7CiAgdXNlRWZmZWN0KCgpID0+IHsKICAgIHNldFRva2VuKGdldEF1dGgoKS5nZXRUb2tlbk9yVW5kZWZpbmVkKCkpOwogIH0sIFtdKTsKICB1c2VFZmZlY3QoKCkgPT4gewogICAgY29uc3QgYXV0aCA9IGdldEF1dGgoKTsKICAgIGlmIChhdXRoLmdldFRva2VuT3JVbmRlZmluZWQoKSA9PSBudWxsKSB7CiAgICAgIGF1dGgKICAgICAgICAucmVmcmVzaCgpCiAgICAgICAgLnRoZW4oKCkgPT4gewogICAgICAgICAgc2V0VG9rZW4oYXV0aC5nZXRUb2tlbk9yVW5kZWZpbmVkKCkpOwogICAgICAgIH0pCiAgICAgICAgLmNhdGNoKCgpID0+IHsKICAgICAgICAgIC8vIElmIHdlIGNhbm5vdCByZWZyZXNoIHRoZSB0b2tlbiAoaS5lLiB0aGUgdXNlciBpcyBub3QgbG9nZ2VkIGluKSB3ZSByZWRpcmVjdCB0byB0aGUgbG9naW4gcGFnZQogICAgICAgICAgcm91dGVyLnB1c2goIi9sb2dpbiIpOwogICAgICAgIH0pOwogICAgfQogIH0sIFtyb3V0ZXJdKTsKCiAgcmV0dXJuIHRva2VuICE9IG51bGw7Cn0KCmV4cG9ydCBkZWZhdWx0IHVzZUF1dGhlbnRpY2F0ZWQ7Cg=="
401
+ }], ["tsconfig.json", {
402
+ "type": "base64",
403
+ "body": "ewogICJjb21waWxlck9wdGlvbnMiOiB7CiAgICAidGFyZ2V0IjogIkVTMjAyMCIsCiAgICAibGliIjogWyJkb20iLCAiZG9tLml0ZXJhYmxlIiwgImVzbmV4dCJdLAogICAgImFsbG93SnMiOiB0cnVlLAogICAgInNraXBMaWJDaGVjayI6IHRydWUsCiAgICAic3RyaWN0IjogdHJ1ZSwKICAgICJub0VtaXQiOiB0cnVlLAogICAgImVzTW9kdWxlSW50ZXJvcCI6IHRydWUsCiAgICAibW9kdWxlIjogImVzbmV4dCIsCiAgICAibW9kdWxlUmVzb2x1dGlvbiI6ICJidW5kbGVyIiwKICAgICJyZXNvbHZlSnNvbk1vZHVsZSI6IHRydWUsCiAgICAiaXNvbGF0ZWRNb2R1bGVzIjogdHJ1ZSwKICAgICJqc3giOiAicHJlc2VydmUiLAogICAgImluY3JlbWVudGFsIjogdHJ1ZSwKICAgICJwbHVnaW5zIjogWwogICAgICB7CiAgICAgICAgIm5hbWUiOiAibmV4dCIKICAgICAgfQogICAgXSwKICAgICJwYXRocyI6IHsKICAgICAgIkAvKiI6IFsiLi9zcmMvKiJdCiAgICB9CiAgfSwKICAiaW5jbHVkZSI6IFsibmV4dC1lbnYuZC50cyIsICIqKi8qLnRzIiwgIioqLyoudHN4IiwgIi5uZXh0L3R5cGVzLyoqLyoudHMiXSwKICAiZXhjbHVkZSI6IFsibm9kZV9tb2R1bGVzIl0KfQo="
404
+ }]]);
405
+
406
+ export { files };
407
+ //# sourceMappingURL=esm-EGY2ZQ7I.js.map
408
+ //# sourceMappingURL=esm-EGY2ZQ7I.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../create-app.template.next-static-export.v2/build/esm/generatedNoCheck/index.js"],"names":[],"mappings":"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","file":"esm-EGY2ZQ7I.js","sourcesContent":["export const files = new Map([[\".eslintrc.json\", {\n \"type\": \"base64\",\n \"body\": \"ewogICJyb290IjogdHJ1ZSwKICAiZXh0ZW5kcyI6ICJuZXh0L2NvcmUtd2ViLXZpdGFscyIKfQo=\"\n}], [\"README.md.hbs\", {\n type: \"raw\",\n body: `# {{project}}\n\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 Next.js. Check out the [Next.js](https://nextjs.org/docs) docs for further configuration.\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 \\`NEXT_PUBLIC_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### Content Security Policy (CSP)\n\n⚠️ Building this Next.js application will produce .html files that will require \\`'unsafe-inline'\\` in the \\`script-src\\` directive of your Content Security Policy. See https://github.com/vercel/next.js/discussions/54152 for more info.\n`\n}], [\".gitignore\", {\n type: \"raw\",\n body: `# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.\n\n# dependencies\n/node_modules\n/.pnp\n.pnp.js\n.yarn/install-state.gz\n\n# testing\n/coverage\n\n# next.js\n/.next\n/out\n\n# production\n/build\n\n# misc\n.DS_Store\n*.pem\n\n# debug\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\n\n# local env files\n.env*.local\n\n# vercel\n.vercel\n\n# typescript\n*.tsbuildinfo\nnext-env.d.ts\n`\n}], [\"next.config.js.hbs\", {\n type: \"raw\",\n body: `/** @type {import('next').NextConfig} */\nconst nextConfig = {\n reactStrictMode: false,\n output: \"export\",\n {{#if corsProxy}}\n // Rewrites are used to proxy requests during local development only for CORS\n // and will warn when using this feature together with export.\n rewrites: () => [\n {\n source: \"/:prefix(multipass/api|api)/:path*\",\n destination: \"{{foundryUrl}}/:prefix/:path*\",\n },\n ],\n {{/if}}\n};\n\nmodule.exports = nextConfig;\n`\n}], [\"package.json.hbs\", {\n type: \"raw\",\n body: `{\n \"name\": \"{{project}}\",\n \"private\": true,\n \"version\": \"0.0.0\",\n \"scripts\": {\n \"dev\": \"next dev -p 8080\",\n \"build\": \"next build\",\n \"start\": \"next start\",\n \"lint\": \"next lint\",\n \"test\": \"vitest run\"\n },\n \"dependencies\": {\n \"{{osdkPackage}}\": \"latest\",\n \"@osdk/client\": \"latest\",\n \"@osdk/oauth\": \"latest\",\n \"next\": \"14.2.10\",\n \"react\": \"^18\",\n \"react-dom\": \"^18\"\n },\n \"devDependencies\": {\n \"@next/env\": \"^14.2.7\",\n \"@types/node\": \"^20\",\n \"@types/react\": \"^18\",\n \"@types/react-dom\": \"^18\",\n \"eslint\": \"^8.57.0\",\n \"eslint-config-next\": \"^14.2.3\",\n \"typescript\": \"^5.5.4\",\n \"vitest\": \"^2.1.2\"\n }\n}`\n}], [\"public/next.svg\", {\n \"type\": \"base64\",\n \"body\": \"PHN2ZyB3aWR0aD0iMTgwIiBoZWlnaHQ9IjE4MCIgdmlld0JveD0iMCAwIDE4MCAxODAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxtYXNrIGlkPSJtYXNrMF80MDhfMTM0IiBzdHlsZT0ibWFzay10eXBlOmFscGhhIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSIwIiB5PSIwIiB3aWR0aD0iMTgwIiBoZWlnaHQ9IjE4MCI+CjxjaXJjbGUgY3g9IjkwIiBjeT0iOTAiIHI9IjkwIiBmaWxsPSJibGFjayIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazBfNDA4XzEzNCkiPgo8Y2lyY2xlIGN4PSI5MCIgY3k9IjkwIiByPSI5MCIgZmlsbD0iYmxhY2siLz4KPHBhdGggZD0iTTE0OS41MDggMTU3LjUyTDY5LjE0MiA1NEg1NFYxMjUuOTdINjYuMTEzNlY2OS4zODM2TDEzOS45OTkgMTY0Ljg0NUMxNDMuMzMzIDE2Mi42MTQgMTQ2LjUwOSAxNjAuMTY1IDE0OS41MDggMTU3LjUyWiIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyXzQwOF8xMzQpIi8+CjxyZWN0IHg9IjExNSIgeT0iNTQiIHdpZHRoPSIxMiIgaGVpZ2h0PSI3MiIgZmlsbD0idXJsKCNwYWludDFfbGluZWFyXzQwOF8xMzQpIi8+CjwvZz4KPGRlZnM+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQwX2xpbmVhcl80MDhfMTM0IiB4MT0iMTA5IiB5MT0iMTE2LjUiIHgyPSIxNDQuNSIgeTI9IjE2MC41IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IndoaXRlIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0id2hpdGUiIHN0b3Atb3BhY2l0eT0iMCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MV9saW5lYXJfNDA4XzEzNCIgeDE9IjEyMSIgeTE9IjU0IiB4Mj0iMTIwLjc5OSIgeTI9IjEwNi44NzUiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0id2hpdGUiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSJ3aGl0ZSIgc3RvcC1vcGFjaXR5PSIwIi8+CjwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KPC9zdmc+Cg==\"\n}], [\"public/palantir.svg\", {\n \"type\": \"base64\",\n \"body\": \"PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00LjEwNzY4IDYuMDY0MDFDNC4xMDc2OCA4LjM3NzEgNS45NjcwMiAxMC4yNTI2IDguMjYwNTkgMTAuMjUyNkMxMC41NTQzIDEwLjI1MjYgMTIuNDEzOCA4LjM3NzEgMTIuNDEzOCA2LjA2NDAxQzEyLjQxMzggMy43NTA4IDEwLjU1NDMgMS44NzU1MyA4LjI2MDU5IDEuODc1NTNDNS45NjcwMiAxLjg3NTUzIDQuMTA3NjggMy43NTA4IDQuMTA3NjggNi4wNjQwMVpNOC4yNjA5MyAxMy45MjNMMTMuNjI5OSAxMS41ODQ4TDE0LjUyMTcgMTMuMzA5MUw4LjI2MDkzIDE2TDIgMTMuMzA5MUwyLjg5MjAxIDExLjU4NDhMOC4yNjA5MyAxMy45MjNaTTguMjYxMDEgMEM0Ljk0MzY3IDAgMi4yNTQ0MiAyLjcxMjI4IDIuMjU0NDIgNi4wNTgwM0MyLjI1NDQyIDkuNDAzNzggNC45NDM2NyAxMi4xMTU5IDguMjYxMDEgMTIuMTE1OUMxMS41NzgyIDEyLjExNTkgMTQuMjY3NiA5LjQwMzc4IDE0LjI2NzYgNi4wNTgwM0MxNC4yNjc2IDIuNzEyMjggMTEuNTc4MiAwIDguMjYxMDEgMFoiIGZpbGw9IiMxMTE0MTgiLz4KPC9zdmc+Cg==\"\n}], [\"src/app/auth/callback/page.tsx\", {\n type: \"raw\",\n body: `\"use client\";\nimport { getAuth } from \"@/lib/client\";\nimport { useRouter } from \"next/navigation\";\nimport { useEffect, useState } from \"react\";\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() {\n const [error, setError] = useState<string | undefined>(undefined);\n const router = useRouter();\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 getAuth()\n .signIn()\n .then(() => router.replace(\"/\"))\n .catch((e: unknown) => setError((e as Error).message ?? e));\n }, [router]);\n return <div>{error != null ? error : \"Authenticating…\"}</div>;\n}\n\nexport default AuthCallback;\n`\n}], [\"src/app/globals.css\", {\n \"type\": \"base64\",\n \"body\": \"OnJvb3QgewogIGZvbnQtZmFtaWx5OiBJbnRlciwgc3lzdGVtLXVpLCBBdmVuaXIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgbGluZS1oZWlnaHQ6IDEuNTsKICBmb250LXdlaWdodDogNDAwOwoKICBjb2xvci1zY2hlbWU6IGxpZ2h0IGRhcms7CiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nyk7CiAgYmFja2dyb3VuZC1jb2xvcjogIzI0MjQyNDsKCiAgZm9udC1zeW50aGVzaXM6IG5vbmU7CiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTsKICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwp9Cgojcm9vdC1jb250YWluZXIgewogIGRpc3BsYXk6IGZsZXg7CiAgZmxleDogMTsKICBhbGlnbi1pdGVtczogY2VudGVyOwp9Cgojcm9vdCB7CiAgbWF4LXdpZHRoOiAxMjgwcHg7CiAgbWFyZ2luOiAwIGF1dG87CiAgcGFkZGluZzogMnJlbTsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCmEgewogIGZvbnQtd2VpZ2h0OiA1MDA7CiAgY29sb3I6ICM2NDZjZmY7CiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0Owp9CmE6aG92ZXIgewogIGNvbG9yOiAjNTM1YmYyOwp9Cgpib2R5IHsKICBtYXJnaW46IDA7CiAgZGlzcGxheTogZmxleDsKICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogIG1pbi13aWR0aDogMzIwcHg7CiAgbWluLWhlaWdodDogMTAwdmg7Cn0KCmgxIHsKICBmb250LXNpemU6IDMuMmVtOwogIGxpbmUtaGVpZ2h0OiAxLjE7Cn0KCmJ1dHRvbiB7CiAgYm9yZGVyLXJhZGl1czogOHB4OwogIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogIHBhZGRpbmc6IDAuNmVtIDEuMmVtOwogIGZvbnQtc2l6ZTogMWVtOwogIGZvbnQtd2VpZ2h0OiA1MDA7CiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgYmFja2dyb3VuZC1jb2xvcjogIzFhMWExYTsKICBjdXJzb3I6IHBvaW50ZXI7CiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMjVzOwp9CmJ1dHRvbjpob3ZlciB7CiAgYm9yZGVyLWNvbG9yOiAjNjQ2Y2ZmOwp9CmJ1dHRvbjpmb2N1cywKYnV0dG9uOmZvY3VzLXZpc2libGUgewogIG91dGxpbmU6IDRweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjsKfQoKQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogbGlnaHQpIHsKICA6cm9vdCB7CiAgICBjb2xvcjogIzIxMzU0NzsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7CiAgfQogIGE6aG92ZXIgewogICAgY29sb3I6ICM3NDdiZmY7CiAgfQogIGJ1dHRvbiB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5OwogIH0KfQo=\"\n}], [\"src/app/icon.svg\", {\n \"type\": \"base64\",\n \"body\": \"PHN2ZyB3aWR0aD0iMTgwIiBoZWlnaHQ9IjE4MCIgdmlld0JveD0iMCAwIDE4MCAxODAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxtYXNrIGlkPSJtYXNrMF80MDhfMTM0IiBzdHlsZT0ibWFzay10eXBlOmFscGhhIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSIwIiB5PSIwIiB3aWR0aD0iMTgwIiBoZWlnaHQ9IjE4MCI+CjxjaXJjbGUgY3g9IjkwIiBjeT0iOTAiIHI9IjkwIiBmaWxsPSJibGFjayIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazBfNDA4XzEzNCkiPgo8Y2lyY2xlIGN4PSI5MCIgY3k9IjkwIiByPSI5MCIgZmlsbD0iYmxhY2siLz4KPHBhdGggZD0iTTE0OS41MDggMTU3LjUyTDY5LjE0MiA1NEg1NFYxMjUuOTdINjYuMTEzNlY2OS4zODM2TDEzOS45OTkgMTY0Ljg0NUMxNDMuMzMzIDE2Mi42MTQgMTQ2LjUwOSAxNjAuMTY1IDE0OS41MDggMTU3LjUyWiIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyXzQwOF8xMzQpIi8+CjxyZWN0IHg9IjExNSIgeT0iNTQiIHdpZHRoPSIxMiIgaGVpZ2h0PSI3MiIgZmlsbD0idXJsKCNwYWludDFfbGluZWFyXzQwOF8xMzQpIi8+CjwvZz4KPGRlZnM+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQwX2xpbmVhcl80MDhfMTM0IiB4MT0iMTA5IiB5MT0iMTE2LjUiIHgyPSIxNDQuNSIgeTI9IjE2MC41IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IndoaXRlIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0id2hpdGUiIHN0b3Atb3BhY2l0eT0iMCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MV9saW5lYXJfNDA4XzEzNCIgeDE9IjEyMSIgeTE9IjU0IiB4Mj0iMTIwLjc5OSIgeTI9IjEwNi44NzUiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0id2hpdGUiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSJ3aGl0ZSIgc3RvcC1vcGFjaXR5PSIwIi8+CjwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KPC9zdmc+Cg==\"\n}], [\"src/app/layout.module.css\", {\n \"type\": \"base64\",\n \"body\": \"LmxvZ28gewogIGhlaWdodDogNmVtOwogIHdpZHRoOiBhdXRvOwogIHBhZGRpbmc6IDEuNWVtOwogIHdpbGwtY2hhbmdlOiBmaWx0ZXI7CiAgdHJhbnNpdGlvbjogZmlsdGVyIDMwMG1zOwp9CgoubG9nbzpob3ZlciB7CiAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAgMmVtICM2NDZjZmZhYSk7Cn0K\"\n}], [\"src/app/layout.tsx\", {\n type: \"raw\",\n body: `import type { Metadata } from \"next\";\nimport { Inter } from \"next/font/google\";\nimport Image from \"next/image\";\nimport css from \"./layout.module.css\";\nimport \"./globals.css\";\n\nconst inter = Inter({ subsets: [\"latin\"] });\n\nexport const metadata: Metadata = {\n title: \"Ontology SDK + Next.js\",\n description: \"Generated by @osdk/create-app\",\n};\n\nfunction RootLayout({ children }: { children: React.ReactNode }) {\n return (\n <html lang=\"en\">\n <body className={inter.className}>\n <div id=\"root-container\">\n <div id=\"root\">\n <a\n href=\"https://www.palantir.com/docs/foundry/ontology-sdk/overview/\"\n target=\"_blank\"\n >\n <Image\n src=\"/palantir.svg\"\n alt=\"Palantir logo\"\n className={css.logo}\n width={16}\n height={16}\n priority\n />\n </a>\n <a href=\"https://nextjs.org/\" target=\"_blank\">\n <Image\n src=\"/next.svg\"\n alt=\"Next logo\"\n className={css.logo}\n width={16}\n height={16}\n priority\n />\n </a>\n {children}\n </div>\n </div>\n </body>\n </html>\n );\n}\n\nexport default RootLayout;\n`\n}], [\"src/app/login/page.tsx\", {\n type: \"raw\",\n body: `\"use client\";\nimport { getAuth } from \"@/lib/client\";\nimport { useRouter } from \"next/navigation\";\nimport { useCallback, useEffect, useState } from \"react\";\n\nfunction Login() {\n const [isLoggingIn, setIsLoggingIn] = useState(false);\n const [error, setError] = useState<string | undefined>(undefined);\n const router = useRouter();\n const [token, setToken] = useState<string | undefined>(undefined);\n useEffect(() => {\n setToken(getAuth().getTokenOrUndefined());\n }, []);\n\n const handleLogin = useCallback(async () => {\n setIsLoggingIn(true);\n try {\n // Initiate the OAuth flow, which will redirect the user to log into Foundry\n // Once the login has completed, the user will be redirected back to the route defined via the\n // FOUNDRY_REDIRECT_URL variable in .env.development\n await getAuth().signIn();\n } catch (e: unknown) {\n console.error(e);\n setError((e as Error).message ?? e);\n } finally {\n setIsLoggingIn(false);\n }\n }, []);\n\n useEffect(() => {\n // If the token exists but a user tries to load /login, redirect to the home page instead\n if (token != null) {\n router.replace(\"/\");\n }\n }, [token, router]);\n\n return (\n <div>\n <h1>Ontology SDK</h1>\n <button onClick={handleLogin}>\n {isLoggingIn ? \"Logging in…\" : \"Log in \"}\n </button>\n {error && <div>Unable to log in: {error}</div>}\n </div>\n );\n}\n\nexport default Login;\n`\n}], [\"src/app/page.module.css\", {\n \"type\": \"base64\",\n \"body\": \"Lm1ldGhvZHMgewogIHBhZGRpbmc6IDJlbTsKICBnYXA6IDJlbTsKICBkaXNwbGF5OiBmbGV4OwogIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgZmxleC13cmFwOiB3cmFwOwp9Cg==\"\n}], [\"src/app/page.tsx.hbs\", {\n type: \"raw\",\n body: `\"use client\";\nimport { \\$Objects, \\$Actions, \\$Queries } from \"{{osdkPackage}}\";\nimport useAuthenticated from \"@/lib/useAuthenticated\";\nimport css from \"./page.module.css\";\n\nfunction Home() {\n const authenticated = useAuthenticated();\n if (!authenticated) {\n return null;\n }\n\n const objectApiNames = Object.keys(\\$Objects);\n const actionApiNames = Object.keys(\\$Actions);\n const queryApiNames = Object.keys(\\$Queries);\n\n return (\n <div>\n <h1>{{osdkPackage}}</h1>\n <p>\n Welcome to your Ontology SDK! Try using any of the following methods\n now.\n </p>\n <div className={css.methods}>\n <div>\n <h2>Objects ({objectApiNames.length})</h2>\n {objectApiNames.map((objectApiName) => (\n <pre key={objectApiName}>\n \\$Objects.{objectApiName}\n </pre>\n ))}\n </div>\n <div>\n <h2>Actions ({actionApiNames.length})</h2>\n {actionApiNames.map((actionApiName) => (\n <pre key={actionApiName}>\n \\$Actions.{actionApiName}\n </pre>\n ))}\n </div>\n <div>\n <h2>Queries ({queryApiNames.length})</h2>\n {queryApiNames.map((queryApiName) => (\n <pre key={queryApiName}>\n \\$Queries.{queryApiName}\n </pre>\n ))}\n </div>\n </div>\n </div>\n );\n}\n\nexport default Home;\n`\n}], [\"src/env.test.ts\", {\n \"type\": \"base64\",\n \"body\": \"aW1wb3J0IHsgbG9hZEVudkNvbmZpZyB9IGZyb20gIkBuZXh0L2VudiI7CmltcG9ydCB7IGFmdGVyRWFjaCwgYmVmb3JlRWFjaCwgZXhwZWN0LCB0ZXN0LCB2aSB9IGZyb20gInZpdGVzdCI7Cgpjb25zdCBFTlZfVkFSUyA9IFsKICAiTkVYVF9QVUJMSUNfRk9VTkRSWV9BUElfVVJMIiwKICAiTkVYVF9QVUJMSUNfRk9VTkRSWV9DTElFTlRfSUQiLAogICJORVhUX1BVQkxJQ19GT1VORFJZX1JFRElSRUNUX1VSTCIsCl07CgpiZWZvcmVFYWNoKCgpID0+IHsKICB2aS5zdHViRW52KCJOT0RFX0VOViIsICJwcm9kdWN0aW9uIik7Cn0pOwoKYWZ0ZXJFYWNoKCgpID0+IHsKICB2aS51bnN0dWJBbGxFbnZzKCk7Cn0pOwoKZm9yIChjb25zdCBlbnZWYXIgb2YgRU5WX1ZBUlMpIHsKICB0ZXN0LnNraXBJZihwcm9jZXNzLmVudi5WRVJJRllfRU5WX1BST0RVQ1RJT04gIT09ICJ0cnVlIikoCiAgICBgcHJvZHVjdGlvbiBlbnYgc2hvdWxkIGNvbnRhaW4gJHtlbnZWYXJ9YCwKICAgICgpID0+IHsKICAgICAgY29uc3QgZW52ID0gbG9hZEVudkNvbmZpZyhwcm9jZXNzLmN3ZCgpKTsKICAgICAgZXhwZWN0KAogICAgICAgIGVudi5jb21iaW5lZEVudltlbnZWYXJdLAogICAgICAgIGAke2VudlZhcn0gc2hvdWxkIGJlIGRlZmluZWRgLAogICAgICApLnRvQmVEZWZpbmVkKCk7CiAgICAgIGV4cGVjdCgKICAgICAgICBlbnYuY29tYmluZWRFbnZbZW52VmFyXSwKICAgICAgICBgJHtlbnZWYXJ9IHNob3VsZCBub3QgY29udGFpbiBwbGFjZWhvbGRlciB2YWx1ZWAsCiAgICAgICkubm90LnRvTWF0Y2goLzwuKj4vKTsKICAgIH0sCiAgKTsKfQo=\"\n}], [\"src/lib/client.ts.hbs\", {\n type: \"raw\",\n body: `import type { Client } from \"@osdk/client\";\nimport type { PublicOauthClient } from \"@osdk/oauth\";\nimport { createClient } from \"@osdk/client\";\nimport { \\$ontologyRid } from \"{{osdkPackage}}\";\nimport { createPublicOauthClient } from \"@osdk/oauth\";\n\nconst url = process.env.NEXT_PUBLIC_FOUNDRY_API_URL;\nconst clientId = process.env.NEXT_PUBLIC_FOUNDRY_CLIENT_ID;\nconst redirectUrl = process.env.NEXT_PUBLIC_FOUNDRY_REDIRECT_URL;\ncheckEnv(url, \"NEXT_PUBLIC_FOUNDRY_API_URL\");\ncheckEnv(clientId, \"NEXT_PUBLIC_FOUNDRY_CLIENT_ID\");\ncheckEnv(redirectUrl, \"NEXT_PUBLIC_FOUNDRY_REDIRECT_URL\");\n\nfunction checkEnv(\n value: string | undefined,\n name: string,\n): asserts value is string {\n if (value == null) {\n throw new Error(\\`Missing environment variable: \\${name}\\`);\n }\n}\n\n// Lazily configure the auth and client to prevent them from being used in pre-rendering\nlet auth: PublicOauthClient | null = null;\nlet client: Client | null = null;\n\nexport const getAuth = () => {\n if (auth == null) {\n auth = createPublicOauthClient(\n clientId,\n url,\n redirectUrl,\n );\n }\n return auth;\n}\n\nexport const getClient = () => {\n if (client == null) {\n client = createClient(\n url,\n \\$ontologyRid,\n getAuth(),\n );\n }\n return client;\n}\n`\n}], [\"src/lib/useAuthenticated.ts\", {\n \"type\": \"base64\",\n \"body\": \"aW1wb3J0IHsgdXNlUm91dGVyIH0gZnJvbSAibmV4dC9uYXZpZ2F0aW9uIjsKaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gInJlYWN0IjsKaW1wb3J0IHsgZ2V0QXV0aCB9IGZyb20gIi4vY2xpZW50IjsKCmZ1bmN0aW9uIHVzZUF1dGhlbnRpY2F0ZWQoKSB7CiAgY29uc3Qgcm91dGVyID0gdXNlUm91dGVyKCk7CiAgY29uc3QgW3Rva2VuLCBzZXRUb2tlbl0gPSB1c2VTdGF0ZTxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7CiAgdXNlRWZmZWN0KCgpID0+IHsKICAgIHNldFRva2VuKGdldEF1dGgoKS5nZXRUb2tlbk9yVW5kZWZpbmVkKCkpOwogIH0sIFtdKTsKICB1c2VFZmZlY3QoKCkgPT4gewogICAgY29uc3QgYXV0aCA9IGdldEF1dGgoKTsKICAgIGlmIChhdXRoLmdldFRva2VuT3JVbmRlZmluZWQoKSA9PSBudWxsKSB7CiAgICAgIGF1dGgKICAgICAgICAucmVmcmVzaCgpCiAgICAgICAgLnRoZW4oKCkgPT4gewogICAgICAgICAgc2V0VG9rZW4oYXV0aC5nZXRUb2tlbk9yVW5kZWZpbmVkKCkpOwogICAgICAgIH0pCiAgICAgICAgLmNhdGNoKCgpID0+IHsKICAgICAgICAgIC8vIElmIHdlIGNhbm5vdCByZWZyZXNoIHRoZSB0b2tlbiAoaS5lLiB0aGUgdXNlciBpcyBub3QgbG9nZ2VkIGluKSB3ZSByZWRpcmVjdCB0byB0aGUgbG9naW4gcGFnZQogICAgICAgICAgcm91dGVyLnB1c2goIi9sb2dpbiIpOwogICAgICAgIH0pOwogICAgfQogIH0sIFtyb3V0ZXJdKTsKCiAgcmV0dXJuIHRva2VuICE9IG51bGw7Cn0KCmV4cG9ydCBkZWZhdWx0IHVzZUF1dGhlbnRpY2F0ZWQ7Cg==\"\n}], [\"tsconfig.json\", {\n \"type\": \"base64\",\n \"body\": \"ewogICJjb21waWxlck9wdGlvbnMiOiB7CiAgICAidGFyZ2V0IjogIkVTMjAyMCIsCiAgICAibGliIjogWyJkb20iLCAiZG9tLml0ZXJhYmxlIiwgImVzbmV4dCJdLAogICAgImFsbG93SnMiOiB0cnVlLAogICAgInNraXBMaWJDaGVjayI6IHRydWUsCiAgICAic3RyaWN0IjogdHJ1ZSwKICAgICJub0VtaXQiOiB0cnVlLAogICAgImVzTW9kdWxlSW50ZXJvcCI6IHRydWUsCiAgICAibW9kdWxlIjogImVzbmV4dCIsCiAgICAibW9kdWxlUmVzb2x1dGlvbiI6ICJidW5kbGVyIiwKICAgICJyZXNvbHZlSnNvbk1vZHVsZSI6IHRydWUsCiAgICAiaXNvbGF0ZWRNb2R1bGVzIjogdHJ1ZSwKICAgICJqc3giOiAicHJlc2VydmUiLAogICAgImluY3JlbWVudGFsIjogdHJ1ZSwKICAgICJwbHVnaW5zIjogWwogICAgICB7CiAgICAgICAgIm5hbWUiOiAibmV4dCIKICAgICAgfQogICAgXSwKICAgICJwYXRocyI6IHsKICAgICAgIkAvKiI6IFsiLi9zcmMvKiJdCiAgICB9CiAgfSwKICAiaW5jbHVkZSI6IFsibmV4dC1lbnYuZC50cyIsICIqKi8qLnRzIiwgIioqLyoudHN4IiwgIi5uZXh0L3R5cGVzLyoqLyoudHMiXSwKICAiZXhjbHVkZSI6IFsibm9kZV9tb2R1bGVzIl0KfQo=\"\n}]]);"]}
@@ -225,7 +225,7 @@ function Home() {
225
225
  <h2>Objects ({objectApiNames.length})</h2>
226
226
  {objectApiNames.map((objectApiName) => (
227
227
  <pre key={objectApiName}>
228
- client.ontology.objects.{objectApiName}
228
+ $Objects.{objectApiName}
229
229
  </pre>
230
230
  ))}
231
231
  </div>
@@ -233,7 +233,7 @@ function Home() {
233
233
  <h2>Actions ({actionApiNames.length})</h2>
234
234
  {actionApiNames.map((actionApiName) => (
235
235
  <pre key={actionApiName}>
236
- client.ontology.actions.{actionApiName}
236
+ $Actions.{actionApiName}
237
237
  </pre>
238
238
  ))}
239
239
  </div>
@@ -241,7 +241,7 @@ function Home() {
241
241
  <h2>Queries ({queryApiNames.length})</h2>
242
242
  {queryApiNames.map((queryApiName) => (
243
243
  <pre key={queryApiName}>
244
- client.ontology.queries.{queryApiName}
244
+ $Queries.{queryApiName}
245
245
  </pre>
246
246
  ))}
247
247
  </div>
@@ -392,14 +392,13 @@ export default defineConfig(({ mode }) => {
392
392
  {{/if}}
393
393
  },
394
394
  define: {
395
- "process.env.NODE_ENV": JSON.stringify(mode)
395
+ "process.env.NODE_ENV": JSON.stringify(mode),
396
396
  },
397
397
  };
398
- }
399
- );
398
+ });
400
399
  `
401
400
  }]]);
402
401
 
403
402
  export { files };
404
- //# sourceMappingURL=esm-EMCTUPWC.js.map
405
- //# sourceMappingURL=esm-EMCTUPWC.js.map
403
+ //# sourceMappingURL=esm-KJKYB7SC.js.map
404
+ //# sourceMappingURL=esm-KJKYB7SC.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-KJKYB7SC.js","sourcesContent":["export const files = new Map([[\".eslintrc.cjs\", {\n type: \"raw\",\n body: `module.exports = {\n root: true,\n env: { browser: true, es2020: true },\n overrides: [\n {\n files: [\"*.ts\", \"*.tsx\"],\n },\n ],\n extends: [\n \"eslint:recommended\",\n \"plugin:@typescript-eslint/recommended\",\n \"plugin:react/recommended\",\n \"plugin:react-hooks/recommended\",\n \"plugin:jsx-a11y/recommended\",\n ],\n ignorePatterns: [\"dist\", \".eslintrc.cjs\"],\n parser: \"@typescript-eslint/parser\",\n plugins: [\"react-refresh\", \"import\", \"react\"],\n rules: {\n \"react-refresh/only-export-components\": [\n \"warn\",\n { allowConstantExport: true },\n ],\n \"import/named\": \"error\",\n \"import/default\": \"error\",\n \"import/namespace\": \"error\",\n \"import/no-duplicates\": \"error\",\n \"react/react-in-jsx-scope\": \"off\", // Disable this rule for React 17+\n },\n settings: {\n react: {\n version: \"detect\", // Automatically detect the React version\n },\n \"import/resolver\": {\n node: {\n extensions: [\".js\", \".jsx\", \".ts\", \".tsx\"],\n },\n },\n },\n};\n`\n}], [\"README.md.hbs\", {\n type: \"raw\",\n body: `# {{project}}\n\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\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\n# Editor directories and files\n.vscode/*\n!.vscode/extensions.json\n.idea\n.DS_Store\n*.suo\n*.ntvs*\n*.njsproj\n*.sln\n*.sw?\n`\n}], [\"index.html\", {\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 <title>Ontology SDK + React</title>\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.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 \"lint\": \"eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0\",\n \"lint:fix\": \"eslint --report-unused-disable-directives --max-warnings 0 --fix\",\n \"test\": \"vitest run\",\n \"preview\": \"vite preview\"\n },\n \"dependencies\": {\n \"{{osdkPackage}}\": \"latest\",\n \"@osdk/client\": \"latest\",\n \"@osdk/oauth\": \"latest\",\n \"react\": \"^18\",\n \"react-dom\": \"^18\",\n \"react-router-dom\": \"^6.23.1\"\n },\n \"devDependencies\": {\n \"@types/node\": \"^22.7.4\",\n \"@types/react\": \"^18\",\n \"@types/react-dom\": \"^18\",\n \"@typescript-eslint/eslint-plugin\": \"^7.16.0\",\n \"@typescript-eslint/parser\": \"^7.16.0\",\n \"@vitejs/plugin-react\": \"^4.2.0\",\n \"eslint\": \"^8.57.0\",\n \"eslint-plugin-import\": \"^2.30.0\",\n \"eslint-plugin-jsx-a11y\": \"^6.7.1\",\n \"eslint-plugin-prettier\": \"^5.2.1\",\n \"eslint-plugin-react\": \"^7.37.1\",\n \"eslint-plugin-react-hooks\": \"^4.6.2\",\n \"eslint-plugin-react-refresh\": \"^0.4.6\",\n \"typescript\": \"^5.5.4\",\n \"vite\": \"^5.4.8\",\n \"vitest\": \"^2.1.2\"\n }\n}`\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 { useEffect, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { auth } from \"./client\";\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() {\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) => setError((e as Error).message ?? e));\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\": \"Lm1ldGhvZHMgewogIHBhZGRpbmc6IDJlbTsKICBnYXA6IDJlbTsKICBkaXNwbGF5OiBmbGV4OwogIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgZmxleC13cmFwOiB3cmFwOwp9Cg==\"\n}], [\"src/Home.tsx.hbs\", {\n type: \"raw\",\n body: `import { \\$Objects, \\$Actions, \\$Queries } from \"{{osdkPackage}}\";\nimport css from \"./Home.module.css\";\nimport Layout from \"./Layout\";\n\nfunction Home() {\n const objectApiNames = Object.keys(\\$Objects);\n const actionApiNames = Object.keys(\\$Actions);\n const queryApiNames = Object.keys(\\$Queries);\n return (\n <Layout>\n <h1>{{osdkPackage}}</h1>\n <p>\n Welcome to your Ontology SDK! Try using any of the following methods\n now.\n </p>\n <div className={css.methods}>\n <div>\n <h2>Objects ({objectApiNames.length})</h2>\n {objectApiNames.map((objectApiName) => (\n <pre key={objectApiName}>\n \\$Objects.{objectApiName}\n </pre>\n ))}\n </div>\n <div>\n <h2>Actions ({actionApiNames.length})</h2>\n {actionApiNames.map((actionApiName) => (\n <pre key={actionApiName}>\n \\$Actions.{actionApiName}\n </pre>\n ))}\n </div>\n <div>\n <h2>Queries ({queryApiNames.length})</h2>\n {queryApiNames.map((queryApiName) => (\n <pre key={queryApiName}>\n \\$Queries.{queryApiName}\n </pre>\n ))}\n </div>\n </div>\n </Layout>\n );\n}\n\nexport default Home;\n`\n}], [\"src/Layout.module.css\", {\n \"type\": \"base64\",\n \"body\": \"LmxvZ28gewogIGhlaWdodDogNmVtOwogIHBhZGRpbmc6IDEuNWVtOwogIHdpbGwtY2hhbmdlOiBmaWx0ZXI7CiAgdHJhbnNpdGlvbjogZmlsdGVyIDMwMG1zOwp9CgoubG9nbzpob3ZlciB7CiAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAgMmVtICM2NDZjZmZhYSk7Cn0K\"\n}], [\"src/Layout.tsx\", {\n type: \"raw\",\n body: `import React from \"react\";\nimport palantirLogo from \"../public/palantir.svg\";\nimport reactLogo from \"../public/react.svg\";\nimport css from \"./Layout.module.css\";\n\ninterface LayoutProps {\n children?: React.ReactNode;\n}\n\nfunction Layout({ children }: LayoutProps) {\n return (\n <>\n <div>\n <a\n href=\"https://www.palantir.com/docs/foundry/ontology-sdk/overview/\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <img src={palantirLogo} className={css.logo} alt=\"Palantir logo\" />\n </a>\n <a href=\"https://react.dev\" target=\"_blank\" rel=\"noopener noreferrer\">\n <img src={reactLogo} className={css.logo} alt=\"React logo\" />\n </a>\n </div>\n {children}\n </>\n );\n}\n\nexport default Layout;\n`\n}], [\"src/client.ts.hbs\", {\n type: \"raw\",\n body: `import type { Client } from \"@osdk/client\";\nimport { createClient } from \"@osdk/client\";\nimport { \\$ontologyRid } from \"{{osdkPackage}}\";\nimport { createPublicOauthClient } from \"@osdk/oauth\";\n\nconst url = import.meta.env.VITE_FOUNDRY_API_URL;\nconst clientId = import.meta.env.VITE_FOUNDRY_CLIENT_ID;\nconst redirectUrl = import.meta.env.VITE_FOUNDRY_REDIRECT_URL;\n\ncheckEnv(url, \"VITE_FOUNDRY_API_URL\");\ncheckEnv(clientId, \"VITE_FOUNDRY_CLIENT_ID\");\ncheckEnv(redirectUrl, \"VITE_FOUNDRY_REDIRECT_URL\");\n\nfunction checkEnv(\n value: string | undefined,\n name: string,\n): asserts value is string {\n if (value == null) {\n throw new Error(\\`Missing environment variable: \\${name}\\`);\n }\n}\n\nexport const auth = createPublicOauthClient(\n clientId,\n url,\n redirectUrl,\n )\n/**\n * Initialize the client to interact with the Ontology SDK\n */\nconst client: Client = createClient(\n url,\n \\$ontologyRid,\n auth,\n);\n\nexport default client;\n`\n}], [\"src/env.test.ts\", {\n \"type\": \"base64\",\n \"body\": \"aW1wb3J0IHsgbG9hZEVudiB9IGZyb20gInZpdGUiOwppbXBvcnQgeyBleHBlY3QsIHRlc3QgfSBmcm9tICJ2aXRlc3QiOwoKY29uc3QgRU5WX1ZBUlMgPSBbCiAgIlZJVEVfRk9VTkRSWV9BUElfVVJMIiwKICAiVklURV9GT1VORFJZX0NMSUVOVF9JRCIsCiAgIlZJVEVfRk9VTkRSWV9SRURJUkVDVF9VUkwiLApdOwoKZm9yIChjb25zdCBlbnZWYXIgb2YgRU5WX1ZBUlMpIHsKICB0ZXN0LnNraXBJZihwcm9jZXNzLmVudi5WRVJJRllfRU5WX1BST0RVQ1RJT04gIT09ICJ0cnVlIikoCiAgICBgcHJvZHVjdGlvbiBlbnYgc2hvdWxkIGNvbnRhaW4gJHtlbnZWYXJ9YCwKICAgICgpID0+IHsKICAgICAgY29uc3QgZW52ID0gbG9hZEVudigicHJvZHVjdGlvbiIsIHByb2Nlc3MuY3dkKCkpOwogICAgICBleHBlY3QoZW52W2VudlZhcl0sIGAke2VudlZhcn0gc2hvdWxkIGJlIGRlZmluZWRgKS50b0JlRGVmaW5lZCgpOwogICAgICBleHBlY3QoCiAgICAgICAgZW52W2VudlZhcl0sCiAgICAgICAgYCR7ZW52VmFyfSBzaG91bGQgbm90IGNvbnRhaW4gcGxhY2Vob2xkZXIgdmFsdWVgLAogICAgICApLm5vdC50b01hdGNoKC88Lio+Lyk7CiAgICB9LAogICk7Cn0K\"\n}], [\"src/index.css\", {\n \"type\": \"base64\",\n \"body\": \"OnJvb3QgewogIGZvbnQtZmFtaWx5OiBJbnRlciwgc3lzdGVtLXVpLCBBdmVuaXIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgbGluZS1oZWlnaHQ6IDEuNTsKICBmb250LXdlaWdodDogNDAwOwoKICBjb2xvci1zY2hlbWU6IGxpZ2h0IGRhcms7CiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nyk7CiAgYmFja2dyb3VuZC1jb2xvcjogIzI0MjQyNDsKCiAgZm9udC1zeW50aGVzaXM6IG5vbmU7CiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTsKICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwp9Cgojcm9vdC1jb250YWluZXIgewogIGRpc3BsYXk6IGZsZXg7CiAgZmxleDogMTsKICBhbGlnbi1pdGVtczogY2VudGVyOwp9Cgojcm9vdCB7CiAgbWF4LXdpZHRoOiAxMjgwcHg7CiAgbWFyZ2luOiAwIGF1dG87CiAgcGFkZGluZzogMnJlbTsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCmEgewogIGZvbnQtd2VpZ2h0OiA1MDA7CiAgY29sb3I6ICM2NDZjZmY7CiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0Owp9CmE6aG92ZXIgewogIGNvbG9yOiAjNTM1YmYyOwp9Cgpib2R5IHsKICBtYXJnaW46IDA7CiAgZGlzcGxheTogZmxleDsKICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogIG1pbi13aWR0aDogMzIwcHg7CiAgbWluLWhlaWdodDogMTAwdmg7Cn0KCmgxIHsKICBmb250LXNpemU6IDMuMmVtOwogIGxpbmUtaGVpZ2h0OiAxLjE7Cn0KCmJ1dHRvbiB7CiAgYm9yZGVyLXJhZGl1czogOHB4OwogIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogIHBhZGRpbmc6IDAuNmVtIDEuMmVtOwogIGZvbnQtc2l6ZTogMWVtOwogIGZvbnQtd2VpZ2h0OiA1MDA7CiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgYmFja2dyb3VuZC1jb2xvcjogIzFhMWExYTsKICBjdXJzb3I6IHBvaW50ZXI7CiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMjVzOwp9CmJ1dHRvbjpob3ZlciB7CiAgYm9yZGVyLWNvbG9yOiAjNjQ2Y2ZmOwp9CmJ1dHRvbjpmb2N1cywKYnV0dG9uOmZvY3VzLXZpc2libGUgewogIG91dGxpbmU6IDRweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjsKfQoKQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogbGlnaHQpIHsKICA6cm9vdCB7CiAgICBjb2xvcjogIzIxMzU0NzsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7CiAgfQogIGE6aG92ZXIgewogICAgY29sb3I6ICM3NDdiZmY7CiAgfQogIGJ1dHRvbiB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5OwogIH0KfQo=\"\n}], [\"src/main.tsx\", {\n type: \"raw\",\n body: `import ReactDOM from \"react-dom/client\";\nimport { createBrowserRouter, RouterProvider } from \"react-router-dom\";\nimport AuthCallback from \"./AuthCallback\";\nimport Home from \"./Home\";\nimport \"./index.css\";\n\nconst 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\nReactDOM.createRoot(document.getElementById(\"root\")!).render(\n <RouterProvider router={router} />,\n);\n`\n}], [\"src/vite-env.d.ts\", {\n \"type\": \"base64\",\n \"body\": \"Ly8vIDxyZWZlcmVuY2UgdHlwZXM9InZpdGUvY2xpZW50IiAvPgo=\"\n}], [\"tsconfig.json\", {\n \"type\": \"base64\",\n \"body\": \"ewogICJjb21waWxlck9wdGlvbnMiOiB7CiAgICAidGFyZ2V0IjogIkVTMjAyMCIsCiAgICAidXNlRGVmaW5lRm9yQ2xhc3NGaWVsZHMiOiB0cnVlLAogICAgImxpYiI6IFsiRVMyMDIwIiwgIkRPTSIsICJET00uSXRlcmFibGUiXSwKICAgICJtb2R1bGUiOiAiRVNOZXh0IiwKICAgICJza2lwTGliQ2hlY2siOiB0cnVlLAoKICAgIC8qIEJ1bmRsZXIgbW9kZSAqLwogICAgIm1vZHVsZVJlc29sdXRpb24iOiAiYnVuZGxlciIsCiAgICAiYWxsb3dJbXBvcnRpbmdUc0V4dGVuc2lvbnMiOiB0cnVlLAogICAgInJlc29sdmVKc29uTW9kdWxlIjogdHJ1ZSwKICAgICJpc29sYXRlZE1vZHVsZXMiOiB0cnVlLAogICAgIm5vRW1pdCI6IHRydWUsCiAgICAianN4IjogInJlYWN0LWpzeCIsCgogICAgLyogTGludGluZyAqLwogICAgInN0cmljdCI6IHRydWUsCiAgICAibm9VbnVzZWRMb2NhbHMiOiB0cnVlLAogICAgIm5vVW51c2VkUGFyYW1ldGVycyI6IHRydWUsCiAgICAibm9GYWxsdGhyb3VnaENhc2VzSW5Td2l0Y2giOiB0cnVlCiAgfSwKICAiaW5jbHVkZSI6IFsic3JjIl0sCiAgInJlZmVyZW5jZXMiOiBbeyAicGF0aCI6ICIuL3RzY29uZmlnLm5vZGUuanNvbiIgfV0KfQo=\"\n}], [\"tsconfig.node.json\", {\n \"type\": \"base64\",\n \"body\": \"ewogICJjb21waWxlck9wdGlvbnMiOiB7CiAgICAiY29tcG9zaXRlIjogdHJ1ZSwKICAgICJza2lwTGliQ2hlY2siOiB0cnVlLAogICAgIm1vZHVsZSI6ICJFU05leHQiLAogICAgIm1vZHVsZVJlc29sdXRpb24iOiAiYnVuZGxlciIsCiAgICAiYWxsb3dTeW50aGV0aWNEZWZhdWx0SW1wb3J0cyI6IHRydWUKICB9LAogICJpbmNsdWRlIjogWyJ2aXRlLmNvbmZpZy50cyJdCn0K\"\n}], [\"vite.config.ts.hbs\", {\n type: \"raw\",\n body: `import 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 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}]]);"]}