@osdk/create-app 2.2.0-beta.9 → 2.2.0-rc.24
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 +64 -0
- package/README.md +2 -0
- package/build/esm/{esm-HA4JIHHL.js → esm-JF6OCVHP.js} +30 -22
- package/build/esm/esm-JF6OCVHP.js.map +1 -0
- package/build/esm/{esm-EXZTN5HA.js → esm-KD5U2KOZ.js} +34 -34
- package/build/esm/esm-KD5U2KOZ.js.map +1 -0
- package/build/esm/{esm-ZXMFAUNZ.js → esm-KU5YPQC2.js} +33 -25
- package/build/esm/esm-KU5YPQC2.js.map +1 -0
- package/build/esm/{esm-WGBRNOZH.js → esm-M2GWHOD5.js} +22 -17
- package/build/esm/esm-M2GWHOD5.js.map +1 -0
- package/build/esm/{esm-XWXVWZDN.js → esm-N7ZNHY2Z.js} +33 -25
- package/build/esm/esm-N7ZNHY2Z.js.map +1 -0
- package/build/esm/{esm-FZSV3C5D.js → esm-O6YHTVZC.js} +56 -62
- package/build/esm/esm-O6YHTVZC.js.map +1 -0
- package/build/esm/{esm-YVNV3MQG.js → esm-SCLZKD46.js} +33 -25
- package/build/esm/esm-SCLZKD46.js.map +1 -0
- package/build/esm/{esm-ZDKAQEHX.js → esm-SYKSDJBT.js} +56 -144
- package/build/esm/esm-SYKSDJBT.js.map +1 -0
- package/build/esm/{esm-WPYEYT7F.js → esm-YK54EMRG.js} +56 -144
- package/build/esm/esm-YK54EMRG.js.map +1 -0
- package/build/esm/index.js +138 -56
- package/build/esm/index.js.map +1 -1
- package/build/types/cli.d.ts.map +1 -1
- package/build/types/generate/generateEnv.d.ts +4 -2
- package/build/types/generate/generateEnv.d.ts.map +1 -1
- package/build/types/index.d.ts +1 -1
- package/build/types/index.d.ts.map +1 -1
- package/build/types/prompts/promptOntologyRid.d.ts +3 -0
- package/build/types/prompts/promptOntologyRid.d.ts.map +1 -0
- package/build/types/prompts/promptOntologyRid.test.d.ts +1 -0
- package/build/types/prompts/promptOntologyRid.test.d.ts.map +1 -0
- package/build/types/prompts/promptScopes.test.d.ts +1 -0
- package/build/types/prompts/promptScopes.test.d.ts.map +1 -0
- package/build/types/prompts/promptTemplate.d.ts +2 -0
- package/build/types/prompts/promptTemplate.d.ts.map +1 -1
- package/build/types/run.d.ts +2 -1
- package/build/types/run.d.ts.map +1 -1
- package/package.json +14 -14
- package/build/esm/esm-EXZTN5HA.js.map +0 -1
- package/build/esm/esm-FZSV3C5D.js.map +0 -1
- package/build/esm/esm-HA4JIHHL.js.map +0 -1
- package/build/esm/esm-WGBRNOZH.js.map +0 -1
- package/build/esm/esm-WPYEYT7F.js.map +0 -1
- package/build/esm/esm-XWXVWZDN.js.map +0 -1
- package/build/esm/esm-YVNV3MQG.js.map +0 -1
- package/build/esm/esm-ZDKAQEHX.js.map +0 -1
- package/build/esm/esm-ZXMFAUNZ.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,53 @@
|
|
|
1
1
|
# @osdk/create-app
|
|
2
2
|
|
|
3
|
+
## 2.2.0-rc.24
|
|
4
|
+
|
|
5
|
+
## 2.2.0-beta.23
|
|
6
|
+
|
|
7
|
+
## 2.2.0-beta.22
|
|
8
|
+
|
|
9
|
+
## 2.2.0-beta.21
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- 317b555: Release
|
|
14
|
+
|
|
15
|
+
## 2.2.0-beta.20
|
|
16
|
+
|
|
17
|
+
### Minor Changes
|
|
18
|
+
|
|
19
|
+
- 889e84b: Release
|
|
20
|
+
|
|
21
|
+
## 2.2.0-beta.19
|
|
22
|
+
|
|
23
|
+
## 2.2.0-beta.18
|
|
24
|
+
|
|
25
|
+
## 2.2.0-beta.17
|
|
26
|
+
|
|
27
|
+
## 2.2.0-beta.16
|
|
28
|
+
|
|
29
|
+
## 2.2.0-beta.15
|
|
30
|
+
|
|
31
|
+
### Minor Changes
|
|
32
|
+
|
|
33
|
+
- 1444362: Read environment variables from index.html meta tags
|
|
34
|
+
|
|
35
|
+
## 2.2.0-beta.14
|
|
36
|
+
|
|
37
|
+
## 2.2.0-beta.13
|
|
38
|
+
|
|
39
|
+
## 2.2.0-beta.12
|
|
40
|
+
|
|
41
|
+
## 2.2.0-beta.11
|
|
42
|
+
|
|
43
|
+
## 2.2.0-beta.10
|
|
44
|
+
|
|
45
|
+
### Minor Changes
|
|
46
|
+
|
|
47
|
+
- e75819c: Add comments to env files in templates
|
|
48
|
+
- fa02507: Use options overload when initializing client in create-app templates and standardize formatting
|
|
49
|
+
- 1d0e72a: Ensure tutorials are not shown by cli
|
|
50
|
+
|
|
3
51
|
## 2.2.0-beta.9
|
|
4
52
|
|
|
5
53
|
## 2.2.0-beta.8
|
|
@@ -24,6 +72,22 @@
|
|
|
24
72
|
|
|
25
73
|
## 2.2.0-beta.2
|
|
26
74
|
|
|
75
|
+
## 2.1.0
|
|
76
|
+
|
|
77
|
+
### Minor Changes
|
|
78
|
+
|
|
79
|
+
- 62a3d1f: Use fixed versions for create-app client and oauth deps
|
|
80
|
+
- be9a9ff: Update dependencies for next apps and lock in typescript version
|
|
81
|
+
- 25fd9f0: Updating package.json to have better entry points to support react native bundlers.
|
|
82
|
+
- ef09e2d: Add Expo template to create-app
|
|
83
|
+
- f7008f7: Support TypeScript 2.0 syntax for Todo App tutorials
|
|
84
|
+
- 51b270d: Support 2.0 syntax in Next and Vue templates
|
|
85
|
+
- 292f5a5: Fix template imports
|
|
86
|
+
- 3d2ba6f: Revert api:x-read/write back to api:read/write-x
|
|
87
|
+
- 81e99c0: Couple templates with SDK version, allow specifying --sdkVersion
|
|
88
|
+
- 4849ae2: internal create-app code is codegen'd
|
|
89
|
+
- 0e1a2e3: Add the scopes option to OSDK CLI and update all example generators to include the scopes if provided, else, hide the scopes to avoid confusion
|
|
90
|
+
|
|
27
91
|
## 2.1.0-beta.31
|
|
28
92
|
|
|
29
93
|
## 2.1.0-beta.30
|
package/README.md
CHANGED
|
@@ -34,10 +34,12 @@ npx @osdk/create-app [project] [--<option>]
|
|
|
34
34
|
| --applicationUrl | URL the production application will be hosted on [string] |
|
|
35
35
|
| --skipApplicationUrl | Skip filling in URL the production application will be hosted on [boolean] |
|
|
36
36
|
| --application | Application resource identifier (rid) [string] |
|
|
37
|
+
| --ontology | Ontology resource identifier (rid) [string] |
|
|
37
38
|
| --clientId | OAuth client ID for application [string] |
|
|
38
39
|
| --osdkPackage | OSDK package name for application [string] |
|
|
39
40
|
| --osdkRegistryUrl | URL for NPM registry to install OSDK package [string] |
|
|
40
41
|
| --corsProxy | Include a CORS proxy for Foundry API requests during local development [boolean] |
|
|
42
|
+
| --scopes | Scopes to request during OAuth flow [array<string>] |
|
|
41
43
|
|
|
42
44
|
## Templates
|
|
43
45
|
|
|
@@ -75,6 +75,10 @@ dist-ssr
|
|
|
75
75
|
<meta charset="UTF-8" />
|
|
76
76
|
<link rel="icon" type="image/svg+xml" href="/vue.svg" />
|
|
77
77
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
78
|
+
<meta name="osdk-clientId" content="%VITE_FOUNDRY_CLIENT_ID%" />
|
|
79
|
+
<meta name="osdk-redirectUrl" content="%VITE_FOUNDRY_REDIRECT_URL%" />
|
|
80
|
+
<meta name="osdk-foundryUrl" content="%VITE_FOUNDRY_API_URL%" />
|
|
81
|
+
<meta name="osdk-ontologyRid" content="%VITE_FOUNDRY_ONTOLOGY_RID%" />
|
|
78
82
|
<title>Ontology SDK + Vue</title>
|
|
79
83
|
</head>
|
|
80
84
|
<body>
|
|
@@ -100,13 +104,13 @@ dist-ssr
|
|
|
100
104
|
},
|
|
101
105
|
"dependencies": {
|
|
102
106
|
"{{osdkPackage}}": "latest",
|
|
103
|
-
"vue": "^3.5.
|
|
107
|
+
"vue": "^3.5.13",
|
|
104
108
|
"vue-router": "^4.4.5"
|
|
105
109
|
},
|
|
106
110
|
"devDependencies": {
|
|
107
111
|
"@vitejs/plugin-vue": "^5.1.4",
|
|
108
112
|
"typescript": "~5.5.4",
|
|
109
|
-
"vite": "^6.
|
|
113
|
+
"vite": "^6.3.5",
|
|
110
114
|
"vitest": "^3.0.5",
|
|
111
115
|
"vue-tsc": "^2.1.6"
|
|
112
116
|
}
|
|
@@ -171,22 +175,30 @@ const queryApiNames = Object.keys(client.ontology.queries);
|
|
|
171
175
|
type: "raw",
|
|
172
176
|
body: `import { FoundryClient, PublicClientAuth } from "{{osdkPackage}}";
|
|
173
177
|
|
|
174
|
-
|
|
175
|
-
const
|
|
176
|
-
const
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
name: string,
|
|
184
|
-
): asserts value is string {
|
|
185
|
-
if (value == null) {
|
|
186
|
-
throw new Error(\`Missing environment variable: \${name}\`);
|
|
178
|
+
function getMetaTagContent(tagName: string): string {
|
|
179
|
+
const elements = document.querySelectorAll(\`meta[name="\${tagName}"]\`);
|
|
180
|
+
const element = elements.item(elements.length - 1);
|
|
181
|
+
const value = element ? element.getAttribute("content") : null;
|
|
182
|
+
if (value == null || value === "") {
|
|
183
|
+
throw new Error(\`Meta tag \${tagName} not found or empty\`);
|
|
184
|
+
}
|
|
185
|
+
if (value.match(/%.+%/)) {
|
|
186
|
+
throw new Error(\`Meta tag \${tagName} contains placeholder value. Please add \${value.replace(/%/g, "")} to your .env files\`);
|
|
187
187
|
}
|
|
188
|
+
return value;
|
|
188
189
|
}
|
|
189
190
|
|
|
191
|
+
const url = getMetaTagContent("osdk-foundryUrl");
|
|
192
|
+
const clientId = getMetaTagContent("osdk-clientId");
|
|
193
|
+
const redirectUrl = getMetaTagContent("osdk-redirectUrl");
|
|
194
|
+
{{#if scopes}}
|
|
195
|
+
const scopes = [
|
|
196
|
+
{{#each scopes}}
|
|
197
|
+
"{{this}}",
|
|
198
|
+
{{/each}}
|
|
199
|
+
];
|
|
200
|
+
{{/if}}
|
|
201
|
+
|
|
190
202
|
/**
|
|
191
203
|
* Initialize the client to interact with the Ontology SDK
|
|
192
204
|
*/
|
|
@@ -197,11 +209,7 @@ const client = new FoundryClient({
|
|
|
197
209
|
url,
|
|
198
210
|
redirectUrl,
|
|
199
211
|
{{#if scopes}}
|
|
200
|
-
scopes
|
|
201
|
-
{{#each scopes}}
|
|
202
|
-
"{{this}}",
|
|
203
|
-
{{/each}}
|
|
204
|
-
],
|
|
212
|
+
scopes,
|
|
205
213
|
{{/if}}
|
|
206
214
|
}),
|
|
207
215
|
});
|
|
@@ -256,5 +264,5 @@ export default defineConfig({
|
|
|
256
264
|
}]]);
|
|
257
265
|
|
|
258
266
|
export { files };
|
|
259
|
-
//# sourceMappingURL=esm-
|
|
260
|
-
//# sourceMappingURL=esm-
|
|
267
|
+
//# sourceMappingURL=esm-JF6OCVHP.js.map
|
|
268
|
+
//# sourceMappingURL=esm-JF6OCVHP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../create-app.template.vue/build/esm/generatedNoCheck/index.js"],"names":[],"mappings":"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","file":"esm-JF6OCVHP.js","sourcesContent":["export const files = new Map([[\".vscode/extensions.json\", {\n \"type\": \"base64\",\n \"body\": \"ewogICJyZWNvbW1lbmRhdGlvbnMiOiBbIlZ1ZS52b2xhciIsICJWdWUudnNjb2RlLXR5cGVzY3JpcHQtdnVlLXBsdWdpbiJdCn0K\"\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 Vue 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=\"/vue.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 <meta name=\"osdk-ontologyRid\" content=\"%VITE_FOUNDRY_ONTOLOGY_RID%\" />\n <title>Ontology SDK + Vue</title>\n </head>\n <body>\n <div id=\"app-container\">\n <div id=\"app\"></div>\n </div>\n <script type=\"module\" src=\"/src/main.ts\"></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\": \"vue-tsc && vite build\",\n \"test\": \"vitest run\",\n \"preview\": \"vite preview\"\n },\n \"dependencies\": {\n \"{{osdkPackage}}\": \"latest\",\n \"vue\": \"^3.5.13\",\n \"vue-router\": \"^4.4.5\"\n },\n \"devDependencies\": {\n \"@vitejs/plugin-vue\": \"^5.1.4\",\n \"typescript\": \"~5.5.4\",\n \"vite\": \"^6.3.5\",\n \"vitest\": \"^3.0.5\",\n \"vue-tsc\": \"^2.1.6\"\n }\n}`\n}], [\"public/palantir.svg\", {\n \"type\": \"base64\",\n \"body\": \"PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00LjEwNzY4IDYuMDY0MDFDNC4xMDc2OCA4LjM3NzEgNS45NjcwMiAxMC4yNTI2IDguMjYwNTkgMTAuMjUyNkMxMC41NTQzIDEwLjI1MjYgMTIuNDEzOCA4LjM3NzEgMTIuNDEzOCA2LjA2NDAxQzEyLjQxMzggMy43NTA4IDEwLjU1NDMgMS44NzU1MyA4LjI2MDU5IDEuODc1NTNDNS45NjcwMiAxLjg3NTUzIDQuMTA3NjggMy43NTA4IDQuMTA3NjggNi4wNjQwMVpNOC4yNjA5MyAxMy45MjNMMTMuNjI5OSAxMS41ODQ4TDE0LjUyMTcgMTMuMzA5MUw4LjI2MDkzIDE2TDIgMTMuMzA5MUwyLjg5MjAxIDExLjU4NDhMOC4yNjA5MyAxMy45MjNaTTguMjYxMDEgMEM0Ljk0MzY3IDAgMi4yNTQ0MiAyLjcxMjI4IDIuMjU0NDIgNi4wNTgwM0MyLjI1NDQyIDkuNDAzNzggNC45NDM2NyAxMi4xMTU5IDguMjYxMDEgMTIuMTE1OUMxMS41NzgyIDEyLjExNTkgMTQuMjY3NiA5LjQwMzc4IDE0LjI2NzYgNi4wNTgwM0MxNC4yNjc2IDIuNzEyMjggMTEuNTc4MiAwIDguMjYxMDEgMFoiIGZpbGw9IiMxMTE0MTgiLz4KPC9zdmc+Cg==\"\n}], [\"public/vue.svg\", {\n \"type\": \"base64\",\n \"body\": \"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIiBjbGFzcz0iaWNvbmlmeSBpY29uaWZ5LS1sb2dvcyIgd2lkdGg9IjM3LjA3IiBoZWlnaHQ9IjM2IiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCBtZWV0IiB2aWV3Qm94PSIwIDAgMjU2IDE5OCI+PHBhdGggZmlsbD0iIzQxQjg4MyIgZD0iTTIwNC44IDBIMjU2TDEyOCAyMjAuOEwwIDBoOTcuOTJMMTI4IDUxLjJMMTU3LjQ0IDBoNDcuMzZaIj48L3BhdGg+PHBhdGggZmlsbD0iIzQxQjg4MyIgZD0ibTAgMGwxMjggMjIwLjhMMjU2IDBoLTUxLjJMMTI4IDEzMi40OEw1MC41NiAwSDBaIj48L3BhdGg+PHBhdGggZmlsbD0iIzM1NDk1RSIgZD0iTTUwLjU2IDBMMTI4IDEzMy4xMkwyMDQuOCAwaC00Ny4zNkwxMjggNTEuMkw5Ny45MiAwSDUwLjU2WiI+PC9wYXRoPjwvc3ZnPg==\"\n}], [\"src/AuthCallback.vue\", {\n \"type\": \"base64\",\n \"body\": \"PHNjcmlwdCBzZXR1cCBsYW5nPSJ0cyI+CmltcG9ydCB7IG9uTW91bnRlZCwgcmVmIH0gZnJvbSAidnVlIjsKaW1wb3J0IGNsaWVudCBmcm9tICIuL2NsaWVudCI7CmltcG9ydCB7IHVzZVJvdXRlciB9IGZyb20gInZ1ZS1yb3V0ZXIiOwoKY29uc3Qgcm91dGVyID0gdXNlUm91dGVyKCk7Cgpjb25zdCBlcnJvciA9IHJlZjxzdHJpbmc+KCk7Cgpvbk1vdW50ZWQoKCkgPT4gewogIGNsaWVudC5hdXRoCiAgICAuc2lnbkluKCkKICAgIC50aGVuKCgpID0+IHJvdXRlci5yZXBsYWNlKCIvIikpCiAgICAuY2F0Y2goKGU6IHVua25vd24pID0+IHsKICAgICAgZXJyb3IudmFsdWUgPSAoZSBhcyBFcnJvcikubWVzc2FnZTsKICAgIH0pOwp9KTsKPC9zY3JpcHQ+Cgo8dGVtcGxhdGU+CiAgPGRpdj57eyBlcnJvciAhPSBudWxsID8gZXJyb3IgOiAiQXV0aGVudGljYXRpbmfigKYiIH19PC9kaXY+CjwvdGVtcGxhdGU+Cg==\"\n}], [\"src/Home.vue.hbs\", {\n type: \"raw\",\n body: `<script setup lang=\"ts\">\nimport client from \"./client\";\n\nconst objectApiNames = Object.keys(client.ontology.objects);\nconst actionApiNames = Object.keys(client.ontology.actions);\nconst queryApiNames = Object.keys(client.ontology.queries);\n</script>\n\n<template>\n <h1>{{osdkPackage}}</h1>\n <p>\n Welcome to your Ontology SDK! Try using any of the following methods now.\n </p>\n <div class=\"methods\">\n <div>\n <h2>Objects (\\\\{{ objectApiNames.length }})</h2>\n <pre v-for=\"objectApiName in objectApiNames\" key=\"objectApiName\">client.ontology.objects.\\\\{{ objectApiName }}</pre>\n </div>\n <div>\n <h2>Actions (\\\\{{ actionApiNames.length }})</h2>\n <pre v-for=\"actionApiName in actionApiNames\" key=\"actionApiName\">client.ontology.actions.\\\\{{ actionApiName }}</pre>\n </div>\n <div>\n <h2>Queries (\\\\{{ queryApiNames.length }})</h2>\n <pre v-for=\"queryApiName in queryApiNames\" key=\"queryApiName\">client.ontology.queries.\\\\{{ queryApiName }}</pre>\n </div>\n </div>\n</template>\n\n<style scoped>\n.methods {\n padding: 2em;\n gap: 2em;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n}\n</style>\n`\n}], [\"src/Layout.vue\", {\n \"type\": \"base64\",\n \"body\": \"PHRlbXBsYXRlPgogIDxkaXY+CiAgICA8YQogICAgICBocmVmPSJodHRwczovL3d3dy5wYWxhbnRpci5jb20vZG9jcy9mb3VuZHJ5L29udG9sb2d5LXNkay9vdmVydmlldy8iCiAgICAgIHRhcmdldD0iX2JsYW5rIgogICAgPgogICAgICA8aW1nIHNyYz0iL3BhbGFudGlyLnN2ZyIgY2xhc3M9ImxvZ28iIGFsdD0iUGFsYW50aXIgbG9nbyIgLz4KICAgIDwvYT4KICAgIDxhIGhyZWY9Imh0dHBzOi8vdnVlanMub3JnLyIgdGFyZ2V0PSJfYmxhbmsiPgogICAgICA8aW1nIHNyYz0iL3Z1ZS5zdmciIGNsYXNzPSJsb2dvIiBhbHQ9IlZ1ZSBsb2dvIiAvPgogICAgPC9hPgogIDwvZGl2PgogIDxyb3V0ZXItdmlldyAvPgo8L3RlbXBsYXRlPgoKPHN0eWxlIHNjb3BlZD4KLmxvZ28gewogIGhlaWdodDogNmVtOwogIHBhZGRpbmc6IDEuNWVtOwogIHdpbGwtY2hhbmdlOiBmaWx0ZXI7CiAgdHJhbnNpdGlvbjogZmlsdGVyIDMwMG1zOwp9Ci5sb2dvOmhvdmVyIHsKICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMCAyZW0gIzY0NmNmZmFhKTsKfQo8L3N0eWxlPgo=\"\n}], [\"src/Login.vue\", {\n \"type\": \"base64\",\n \"body\": \"PHNjcmlwdCBzZXR1cCBsYW5nPSJ0cyI+CmltcG9ydCB7IG9uVXBkYXRlZCwgcmVmIH0gZnJvbSAidnVlIjsKaW1wb3J0IGNsaWVudCBmcm9tICIuL2NsaWVudCI7CmltcG9ydCB7IHVzZVJvdXRlciB9IGZyb20gInZ1ZS1yb3V0ZXIiOwoKY29uc3Qgcm91dGVyID0gdXNlUm91dGVyKCk7Cgpjb25zdCBpc0xvZ2dpbmdJbiA9IHJlZihmYWxzZSk7CmNvbnN0IGVycm9yID0gcmVmPHN0cmluZz4oKTsKCmNvbnN0IGxvZ2luID0gYXN5bmMgKCkgPT4gewogIGlzTG9nZ2luZ0luLnZhbHVlID0gdHJ1ZTsKICB0cnkgewogICAgYXdhaXQgY2xpZW50LmF1dGguc2lnbkluKCk7CiAgfSBjYXRjaCAoZTogdW5rbm93bikgewogICAgZXJyb3IudmFsdWUgPSAoZSBhcyBFcnJvcikubWVzc2FnZTsKICB9IGZpbmFsbHkgewogICAgaXNMb2dnaW5nSW4udmFsdWUgPSBmYWxzZTsKICB9Cn07CgpvblVwZGF0ZWQoKCkgPT4gewogIC8vIElmIHRoZSB0b2tlbiBleGlzdHMgYnV0IGEgdXNlciB0cmllcyB0byBsb2FkIC9sb2dpbiwgcmVkaXJlY3QgdG8gdGhlIGhvbWUgcGFnZSBpbnN0ZWFkCiAgaWYgKGNsaWVudC5hdXRoLnRva2VuICE9IG51bGwpIHsKICAgIHJvdXRlci5yZXBsYWNlKCIvIik7CiAgfQp9KTsKPC9zY3JpcHQ+Cgo8dGVtcGxhdGU+CiAgPGgxPk9udG9sb2d5IFNESzwvaDE+CiAgPGJ1dHRvbiBAY2xpY2s9ImxvZ2luIj4KICAgIHt7IGlzTG9nZ2luZ0luID8gIkxvZ2dpbmcgaW7igKYiIDogIkxvZyBpbiAiIH19CiAgPC9idXR0b24+CiAgPGRpdiB2LWlmPSJlcnJvciI+VW5hYmxlIHRvIGxvZyBpbjoge3sgZXJyb3IgfX08L2Rpdj4KPC90ZW1wbGF0ZT4K\"\n}], [\"src/client.ts.hbs\", {\n type: \"raw\",\n body: `import { FoundryClient, PublicClientAuth } from \"{{osdkPackage}}\";\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(\\`Meta tag \\${tagName} contains placeholder value. Please add \\${value.replace(/%/g, \"\")} to your .env files\\`);\n }\n return value;\n}\n\nconst url = getMetaTagContent(\"osdk-foundryUrl\");\nconst clientId = getMetaTagContent(\"osdk-clientId\");\nconst redirectUrl = getMetaTagContent(\"osdk-redirectUrl\");\n{{#if scopes}}\nconst scopes = [\n {{#each scopes}}\n \"{{this}}\",\n {{/each}}\n];\n{{/if}}\n\n/**\n * Initialize the client to interact with the Ontology SDK\n */\nconst client = new FoundryClient({\n url,\n auth: new PublicClientAuth({\n clientId,\n url,\n redirectUrl,\n {{#if scopes}}\n scopes,\n {{/if}}\n }),\n});\n\nexport default client;\n`\n}], [\"src/env.test.ts\", {\n \"type\": \"base64\",\n \"body\": \"aW1wb3J0IHsgbG9hZEVudiB9IGZyb20gInZpdGUiOwppbXBvcnQgeyBleHBlY3QsIHRlc3QgfSBmcm9tICJ2aXRlc3QiOwoKY29uc3QgRU5WX1ZBUlMgPSBbCiAgIlZJVEVfRk9VTkRSWV9BUElfVVJMIiwKICAiVklURV9GT1VORFJZX0NMSUVOVF9JRCIsCiAgIlZJVEVfRk9VTkRSWV9SRURJUkVDVF9VUkwiLApdOwoKZm9yIChjb25zdCBlbnZWYXIgb2YgRU5WX1ZBUlMpIHsKICB0ZXN0LnNraXBJZihwcm9jZXNzLmVudi5WRVJJRllfRU5WX1BST0RVQ1RJT04gIT09ICJ0cnVlIikoCiAgICBgcHJvZHVjdGlvbiBlbnYgc2hvdWxkIGNvbnRhaW4gJHtlbnZWYXJ9YCwKICAgICgpID0+IHsKICAgICAgY29uc3QgZW52ID0gbG9hZEVudigicHJvZHVjdGlvbiIsIHByb2Nlc3MuY3dkKCkpOwogICAgICBleHBlY3QoZW52W2VudlZhcl0sIGAke2VudlZhcn0gc2hvdWxkIGJlIGRlZmluZWRgKS50b0JlRGVmaW5lZCgpOwogICAgICBleHBlY3QoCiAgICAgICAgZW52W2VudlZhcl0sCiAgICAgICAgYCR7ZW52VmFyfSBzaG91bGQgbm90IGNvbnRhaW4gcGxhY2Vob2xkZXIgdmFsdWVgLAogICAgICApLm5vdC50b01hdGNoKC88Lio+Lyk7CiAgICB9LAogICk7Cn0K\"\n}], [\"src/main.ts\", {\n \"type\": \"base64\",\n \"body\": \"aW1wb3J0IHsgY3JlYXRlQXBwIH0gZnJvbSAidnVlIjsKaW1wb3J0IHsgY3JlYXRlUm91dGVyLCBjcmVhdGVXZWJIaXN0b3J5IH0gZnJvbSAidnVlLXJvdXRlciI7CmltcG9ydCBBdXRoQ2FsbGJhY2sgZnJvbSAiLi9BdXRoQ2FsbGJhY2sudnVlIjsKaW1wb3J0IGNsaWVudCBmcm9tICIuL2NsaWVudCI7CmltcG9ydCBIb21lIGZyb20gIi4vSG9tZS52dWUiOwppbXBvcnQgTGF5b3V0IGZyb20gIi4vTGF5b3V0LnZ1ZSI7CmltcG9ydCBMb2dpbiBmcm9tICIuL0xvZ2luLnZ1ZSI7CmltcG9ydCAiLi9zdHlsZS5jc3MiOwoKY29uc3Qgcm91dGVzID0gWwogIHsgcGF0aDogIi8iLCBjb21wb25lbnQ6IEhvbWUsIG1ldGE6IHsgcmVxdWlyZXNBdXRoOiB0cnVlIH0gfSwKICB7IHBhdGg6ICIvbG9naW4iLCBjb21wb25lbnQ6IExvZ2luIH0sCiAgeyBwYXRoOiAiL2F1dGgvY2FsbGJhY2siLCBjb21wb25lbnQ6IEF1dGhDYWxsYmFjayB9LApdOwoKY29uc3Qgcm91dGVyID0gY3JlYXRlUm91dGVyKHsKICBoaXN0b3J5OiBjcmVhdGVXZWJIaXN0b3J5KGltcG9ydC5tZXRhLmVudi5CQVNFX1VSTCksCiAgcm91dGVzLAp9KTsKCnJvdXRlci5iZWZvcmVFYWNoKGFzeW5jICh0bykgPT4gewogIGlmICgKICAgIHRvLm1ldGEucmVxdWlyZXNBdXRoCiAgICAmJiAoY2xpZW50LmF1dGgudG9rZW4gPT0gbnVsbCB8fCBjbGllbnQuYXV0aC50b2tlbi5pc0V4cGlyZWQpCiAgKSB7CiAgICB0cnkgewogICAgICBhd2FpdCBjbGllbnQuYXV0aC5yZWZyZXNoKCk7CiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7CiAgICAgIC8vIElmIHdlIGNhbm5vdCByZWZyZXNoIHRoZSB0b2tlbiAoaS5lLiB0aGUgdXNlciBpcyBub3QgbG9nZ2VkIGluKSB3ZSByZWRpcmVjdCB0byB0aGUgbG9naW4gcGFnZQogICAgICByZXR1cm4gIi9sb2dpbiI7CiAgICB9CiAgfQp9KTsKCmNyZWF0ZUFwcChMYXlvdXQpLnVzZShyb3V0ZXIpLm1vdW50KCIjYXBwIik7Cg==\"\n}], [\"src/style.css\", {\n \"type\": \"base64\",\n \"body\": \"OnJvb3QgewogIGZvbnQtZmFtaWx5OiBJbnRlciwgc3lzdGVtLXVpLCBBdmVuaXIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgbGluZS1oZWlnaHQ6IDEuNTsKICBmb250LXdlaWdodDogNDAwOwoKICBjb2xvci1zY2hlbWU6IGxpZ2h0IGRhcms7CiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nyk7CiAgYmFja2dyb3VuZC1jb2xvcjogIzI0MjQyNDsKCiAgZm9udC1zeW50aGVzaXM6IG5vbmU7CiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTsKICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwp9CgojYXBwLWNvbnRhaW5lciB7CiAgZGlzcGxheTogZmxleDsKICBmbGV4OiAxOwogIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KCiNhcHAgewogIG1heC13aWR0aDogMTI4MHB4OwogIG1hcmdpbjogMCBhdXRvOwogIHBhZGRpbmc6IDJyZW07CiAgdGV4dC1hbGlnbjogY2VudGVyOwp9CgphIHsKICBmb250LXdlaWdodDogNTAwOwogIGNvbG9yOiAjNjQ2Y2ZmOwogIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDsKfQphOmhvdmVyIHsKICBjb2xvcjogIzUzNWJmMjsKfQoKYm9keSB7CiAgbWFyZ2luOiAwOwogIGRpc3BsYXk6IGZsZXg7CiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICBtaW4td2lkdGg6IDMyMHB4OwogIG1pbi1oZWlnaHQ6IDEwMHZoOwp9CgpoMSB7CiAgZm9udC1zaXplOiAzLjJlbTsKICBsaW5lLWhlaWdodDogMS4xOwp9CgpidXR0b24gewogIGJvcmRlci1yYWRpdXM6IDhweDsKICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICBwYWRkaW5nOiAwLjZlbSAxLjJlbTsKICBmb250LXNpemU6IDFlbTsKICBmb250LXdlaWdodDogNTAwOwogIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogIGJhY2tncm91bmQtY29sb3I6ICMxYTFhMWE7CiAgY3Vyc29yOiBwb2ludGVyOwogIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjI1czsKfQpidXR0b246aG92ZXIgewogIGJvcmRlci1jb2xvcjogIzY0NmNmZjsKfQpidXR0b246Zm9jdXMsCmJ1dHRvbjpmb2N1cy12aXNpYmxlIHsKICBvdXRsaW5lOiA0cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7Cn0KCkBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGxpZ2h0KSB7CiAgOnJvb3QgewogICAgY29sb3I6ICMyMTM1NDc7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOwogIH0KICBhOmhvdmVyIHsKICAgIGNvbG9yOiAjNzQ3YmZmOwogIH0KICBidXR0b24gewogICAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTsKICB9Cn0K\"\n}], [\"src/vite-env.d.ts\", {\n \"type\": \"base64\",\n \"body\": \"Ly8vIDxyZWZlcmVuY2UgdHlwZXM9InZpdGUvY2xpZW50IiAvPgo=\"\n}], [\"tsconfig.json\", {\n \"type\": \"base64\",\n \"body\": \"ewogICJjb21waWxlck9wdGlvbnMiOiB7CiAgICAidGFyZ2V0IjogIkVTMjAyMCIsCiAgICAidXNlRGVmaW5lRm9yQ2xhc3NGaWVsZHMiOiB0cnVlLAogICAgIm1vZHVsZSI6ICJFU05leHQiLAogICAgImxpYiI6IFsiRVMyMDIwIiwgIkRPTSIsICJET00uSXRlcmFibGUiXSwKICAgICJza2lwTGliQ2hlY2siOiB0cnVlLAoKICAgIC8qIEJ1bmRsZXIgbW9kZSAqLwogICAgIm1vZHVsZVJlc29sdXRpb24iOiAiYnVuZGxlciIsCiAgICAiYWxsb3dJbXBvcnRpbmdUc0V4dGVuc2lvbnMiOiB0cnVlLAogICAgInJlc29sdmVKc29uTW9kdWxlIjogdHJ1ZSwKICAgICJpc29sYXRlZE1vZHVsZXMiOiB0cnVlLAogICAgIm5vRW1pdCI6IHRydWUsCiAgICAianN4IjogInByZXNlcnZlIiwKCiAgICAvKiBMaW50aW5nICovCiAgICAic3RyaWN0IjogdHJ1ZSwKICAgICJub1VudXNlZExvY2FscyI6IHRydWUsCiAgICAibm9VbnVzZWRQYXJhbWV0ZXJzIjogdHJ1ZSwKICAgICJub0ZhbGx0aHJvdWdoQ2FzZXNJblN3aXRjaCI6IHRydWUKICB9LAogICJpbmNsdWRlIjogWyJzcmMvKiovKi50cyIsICJzcmMvKiovKi50c3giLCAic3JjLyoqLyoudnVlIl0sCiAgInJlZmVyZW5jZXMiOiBbeyAicGF0aCI6ICIuL3RzY29uZmlnLm5vZGUuanNvbiIgfV0KfQo=\"\n}], [\"tsconfig.node.json\", {\n \"type\": \"base64\",\n \"body\": \"ewogICJjb21waWxlck9wdGlvbnMiOiB7CiAgICAiY29tcG9zaXRlIjogdHJ1ZSwKICAgICJza2lwTGliQ2hlY2siOiB0cnVlLAogICAgIm1vZHVsZSI6ICJFU05leHQiLAogICAgIm1vZHVsZVJlc29sdXRpb24iOiAiYnVuZGxlciIsCiAgICAiYWxsb3dTeW50aGV0aWNEZWZhdWx0SW1wb3J0cyI6IHRydWUKICB9LAogICJpbmNsdWRlIjogWyJ2aXRlLmNvbmZpZy50cyJdCn0K\"\n}], [\"vite.config.ts.hbs\", {\n type: \"raw\",\n body: `import vue from \"@vitejs/plugin-vue\";\nimport { defineConfig } from \"vite\";\n\n// https://vitejs.dev/config/\nexport default defineConfig({\n plugins: [vue()],\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 resolve: {\n alias: {\n vue: \"vue/dist/vue.esm-bundler\",\n },\n },\n});\n`\n}]]);"]}
|
|
@@ -75,6 +75,10 @@ dist-ssr
|
|
|
75
75
|
<meta charset="UTF-8" />
|
|
76
76
|
<link rel="icon" type="image/svg+xml" href="/vue.svg" />
|
|
77
77
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
78
|
+
<meta name="osdk-clientId" content="%VITE_FOUNDRY_CLIENT_ID%" />
|
|
79
|
+
<meta name="osdk-redirectUrl" content="%VITE_FOUNDRY_REDIRECT_URL%" />
|
|
80
|
+
<meta name="osdk-foundryUrl" content="%VITE_FOUNDRY_API_URL%" />
|
|
81
|
+
<meta name="osdk-ontologyRid" content="%VITE_FOUNDRY_ONTOLOGY_RID%" />
|
|
78
82
|
<title>Ontology SDK + Vue</title>
|
|
79
83
|
</head>
|
|
80
84
|
<body>
|
|
@@ -101,15 +105,15 @@ dist-ssr
|
|
|
101
105
|
"dependencies": {
|
|
102
106
|
"{{osdkPackage}}": "latest",
|
|
103
107
|
"@osdk/client": "{{clientVersion}}",
|
|
104
|
-
"@osdk/oauth": "^1.
|
|
105
|
-
"vue": "^3.5.
|
|
108
|
+
"@osdk/oauth": "^1.1.0",
|
|
109
|
+
"vue": "^3.5.13",
|
|
106
110
|
"vue-router": "^4.4.5"
|
|
107
111
|
},
|
|
108
112
|
"devDependencies": {
|
|
109
113
|
"@types/node": "^18.0.0",
|
|
110
114
|
"@vitejs/plugin-vue": "^5.1.4",
|
|
111
115
|
"typescript": "~5.5.4",
|
|
112
|
-
"vite": "^6.
|
|
116
|
+
"vite": "^6.3.5",
|
|
113
117
|
"vitest": "^3.0.5",
|
|
114
118
|
"vue-tsc": "^2.1.6"
|
|
115
119
|
}
|
|
@@ -172,44 +176,40 @@ const queryApiNames = Object.keys($Queries);
|
|
|
172
176
|
"body": "PHNjcmlwdCBzZXR1cCBsYW5nPSJ0cyI+CmltcG9ydCB7IG9uVXBkYXRlZCwgcmVmIH0gZnJvbSAidnVlIjsKaW1wb3J0IHsgYXV0aCB9IGZyb20gIi4vY2xpZW50IjsKaW1wb3J0IHsgdXNlUm91dGVyIH0gZnJvbSAidnVlLXJvdXRlciI7Cgpjb25zdCByb3V0ZXIgPSB1c2VSb3V0ZXIoKTsKCmNvbnN0IGlzTG9nZ2luZ0luID0gcmVmKGZhbHNlKTsKY29uc3QgZXJyb3IgPSByZWY8c3RyaW5nPigpOwoKY29uc3QgbG9naW4gPSBhc3luYyAoKSA9PiB7CiAgaXNMb2dnaW5nSW4udmFsdWUgPSB0cnVlOwogIHRyeSB7CiAgICBhd2FpdCBhdXRoLnNpZ25JbigpOwogIH0gY2F0Y2ggKGU6IHVua25vd24pIHsKICAgIGVycm9yLnZhbHVlID0gKGUgYXMgRXJyb3IpLm1lc3NhZ2U7CiAgfSBmaW5hbGx5IHsKICAgIGlzTG9nZ2luZ0luLnZhbHVlID0gZmFsc2U7CiAgfQp9OwoKb25VcGRhdGVkKCgpID0+IHsKICAvLyBJZiB0aGUgdG9rZW4gZXhpc3RzIGJ1dCBhIHVzZXIgdHJpZXMgdG8gbG9hZCAvbG9naW4sIHJlZGlyZWN0IHRvIHRoZSBob21lIHBhZ2UgaW5zdGVhZAogIGlmIChhdXRoLmdldFRva2VuT3JVbmRlZmluZWQoKSAhPSBudWxsKSB7CiAgICByb3V0ZXIucmVwbGFjZSgiLyIpOwogIH0KfSk7Cjwvc2NyaXB0PgoKPHRlbXBsYXRlPgogIDxoMT5PbnRvbG9neSBTREs8L2gxPgogIDxidXR0b24gQGNsaWNrPSJsb2dpbiI+CiAgICB7eyBpc0xvZ2dpbmdJbiA/ICJMb2dnaW5nIGlu4oCmIiA6ICJMb2cgaW4gIiB9fQogIDwvYnV0dG9uPgogIDxkaXYgdi1pZj0iZXJyb3IiPlVuYWJsZSB0byBsb2cgaW46IHt7IGVycm9yIH19PC9kaXY+CjwvdGVtcGxhdGU+Cg=="
|
|
173
177
|
}], ["src/client.ts.hbs", {
|
|
174
178
|
type: "raw",
|
|
175
|
-
body: `import type
|
|
176
|
-
import {
|
|
177
|
-
import { $ontologyRid } from "{{osdkPackage}}";
|
|
178
|
-
import { createPublicOauthClient } from "@osdk/oauth";
|
|
179
|
+
body: `import { createClient, type Client } from "@osdk/client";
|
|
180
|
+
import { createPublicOauthClient, type PublicOauthClient } from "@osdk/oauth";
|
|
179
181
|
|
|
180
|
-
|
|
181
|
-
const
|
|
182
|
-
const
|
|
182
|
+
function getMetaTagContent(tagName: string): string {
|
|
183
|
+
const elements = document.querySelectorAll(\`meta[name="\${tagName}"]\`);
|
|
184
|
+
const element = elements.item(elements.length - 1);
|
|
185
|
+
const value = element ? element.getAttribute("content") : null;
|
|
186
|
+
if (value == null || value === "") {
|
|
187
|
+
throw new Error(\`Meta tag \${tagName} not found or empty\`);
|
|
188
|
+
}
|
|
189
|
+
if (value.match(/%.+%/)) {
|
|
190
|
+
throw new Error(\`Meta tag \${tagName} contains placeholder value. Please add \${value.replace(/%/g, "")} to your .env files\`);
|
|
191
|
+
}
|
|
192
|
+
return value;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
const foundryUrl = getMetaTagContent("osdk-foundryUrl");
|
|
196
|
+
const clientId = getMetaTagContent("osdk-clientId");
|
|
197
|
+
const redirectUrl = getMetaTagContent("osdk-redirectUrl");
|
|
198
|
+
const ontologyRid = getMetaTagContent("osdk-ontologyRid");
|
|
183
199
|
{{#if scopes}}
|
|
184
200
|
const scopes = [
|
|
185
201
|
{{#each scopes}}
|
|
186
|
-
|
|
202
|
+
"{{this}}",
|
|
187
203
|
{{/each}}
|
|
188
204
|
];
|
|
189
205
|
{{/if}}
|
|
190
206
|
|
|
191
|
-
|
|
192
|
-
checkEnv(clientId, "VITE_FOUNDRY_CLIENT_ID");
|
|
193
|
-
checkEnv(redirectUrl, "VITE_FOUNDRY_REDIRECT_URL");
|
|
194
|
-
|
|
195
|
-
function checkEnv(
|
|
196
|
-
value: string | undefined,
|
|
197
|
-
name: string,
|
|
198
|
-
): asserts value is string {
|
|
199
|
-
if (value == null) {
|
|
200
|
-
throw new Error(\`Missing environment variable: \${name}\`);
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
export const auth = createPublicOauthClient(
|
|
207
|
+
export const auth: PublicOauthClient = createPublicOauthClient(
|
|
205
208
|
clientId,
|
|
206
|
-
|
|
209
|
+
foundryUrl,
|
|
207
210
|
redirectUrl,
|
|
208
211
|
{{#if scopes}}
|
|
209
|
-
|
|
210
|
-
undefined,
|
|
211
|
-
window.location.toString(),
|
|
212
|
-
scopes,
|
|
212
|
+
{ scopes },
|
|
213
213
|
{{/if}}
|
|
214
214
|
);
|
|
215
215
|
|
|
@@ -217,8 +217,8 @@ export const auth = createPublicOauthClient(
|
|
|
217
217
|
* Initialize the client to interact with the Ontology SDK
|
|
218
218
|
*/
|
|
219
219
|
const client: Client = createClient(
|
|
220
|
-
|
|
221
|
-
|
|
220
|
+
foundryUrl,
|
|
221
|
+
ontologyRid,
|
|
222
222
|
auth,
|
|
223
223
|
);
|
|
224
224
|
|
|
@@ -277,5 +277,5 @@ export default defineConfig(({ mode }) => {
|
|
|
277
277
|
}]]);
|
|
278
278
|
|
|
279
279
|
export { files };
|
|
280
|
-
//# sourceMappingURL=esm-
|
|
281
|
-
//# sourceMappingURL=esm-
|
|
280
|
+
//# sourceMappingURL=esm-KD5U2KOZ.js.map
|
|
281
|
+
//# sourceMappingURL=esm-KD5U2KOZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../create-app.template.vue.v2/build/esm/generatedNoCheck/index.js"],"names":[],"mappings":"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","file":"esm-KD5U2KOZ.js","sourcesContent":["export const files = new Map([[\".vscode/extensions.json\", {\n \"type\": \"base64\",\n \"body\": \"ewogICJyZWNvbW1lbmRhdGlvbnMiOiBbIlZ1ZS52b2xhciIsICJWdWUudnNjb2RlLXR5cGVzY3JpcHQtdnVlLXBsdWdpbiJdCn0K\"\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 Vue 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=\"/vue.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 <meta name=\"osdk-ontologyRid\" content=\"%VITE_FOUNDRY_ONTOLOGY_RID%\" />\n <title>Ontology SDK + Vue</title>\n </head>\n <body>\n <div id=\"app-container\">\n <div id=\"app\"></div>\n </div>\n <script type=\"module\" src=\"/src/main.ts\"></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\": \"vue-tsc && vite build\",\n \"test\": \"vitest run\",\n \"preview\": \"vite preview\"\n },\n \"dependencies\": {\n \"{{osdkPackage}}\": \"latest\",\n \"@osdk/client\": \"{{clientVersion}}\",\n \"@osdk/oauth\": \"^1.1.0\",\n \"vue\": \"^3.5.13\",\n \"vue-router\": \"^4.4.5\"\n },\n \"devDependencies\": {\n \"@types/node\": \"^18.0.0\",\n \"@vitejs/plugin-vue\": \"^5.1.4\",\n \"typescript\": \"~5.5.4\",\n \"vite\": \"^6.3.5\",\n \"vitest\": \"^3.0.5\",\n \"vue-tsc\": \"^2.1.6\"\n }\n}`\n}], [\"public/palantir.svg\", {\n \"type\": \"base64\",\n \"body\": \"PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00LjEwNzY4IDYuMDY0MDFDNC4xMDc2OCA4LjM3NzEgNS45NjcwMiAxMC4yNTI2IDguMjYwNTkgMTAuMjUyNkMxMC41NTQzIDEwLjI1MjYgMTIuNDEzOCA4LjM3NzEgMTIuNDEzOCA2LjA2NDAxQzEyLjQxMzggMy43NTA4IDEwLjU1NDMgMS44NzU1MyA4LjI2MDU5IDEuODc1NTNDNS45NjcwMiAxLjg3NTUzIDQuMTA3NjggMy43NTA4IDQuMTA3NjggNi4wNjQwMVpNOC4yNjA5MyAxMy45MjNMMTMuNjI5OSAxMS41ODQ4TDE0LjUyMTcgMTMuMzA5MUw4LjI2MDkzIDE2TDIgMTMuMzA5MUwyLjg5MjAxIDExLjU4NDhMOC4yNjA5MyAxMy45MjNaTTguMjYxMDEgMEM0Ljk0MzY3IDAgMi4yNTQ0MiAyLjcxMjI4IDIuMjU0NDIgNi4wNTgwM0MyLjI1NDQyIDkuNDAzNzggNC45NDM2NyAxMi4xMTU5IDguMjYxMDEgMTIuMTE1OUMxMS41NzgyIDEyLjExNTkgMTQuMjY3NiA5LjQwMzc4IDE0LjI2NzYgNi4wNTgwM0MxNC4yNjc2IDIuNzEyMjggMTEuNTc4MiAwIDguMjYxMDEgMFoiIGZpbGw9IiMxMTE0MTgiLz4KPC9zdmc+Cg==\"\n}], [\"public/vue.svg\", {\n \"type\": \"base64\",\n \"body\": \"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIiBjbGFzcz0iaWNvbmlmeSBpY29uaWZ5LS1sb2dvcyIgd2lkdGg9IjM3LjA3IiBoZWlnaHQ9IjM2IiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCBtZWV0IiB2aWV3Qm94PSIwIDAgMjU2IDE5OCI+PHBhdGggZmlsbD0iIzQxQjg4MyIgZD0iTTIwNC44IDBIMjU2TDEyOCAyMjAuOEwwIDBoOTcuOTJMMTI4IDUxLjJMMTU3LjQ0IDBoNDcuMzZaIj48L3BhdGg+PHBhdGggZmlsbD0iIzQxQjg4MyIgZD0ibTAgMGwxMjggMjIwLjhMMjU2IDBoLTUxLjJMMTI4IDEzMi40OEw1MC41NiAwSDBaIj48L3BhdGg+PHBhdGggZmlsbD0iIzM1NDk1RSIgZD0iTTUwLjU2IDBMMTI4IDEzMy4xMkwyMDQuOCAwaC00Ny4zNkwxMjggNTEuMkw5Ny45MiAwSDUwLjU2WiI+PC9wYXRoPjwvc3ZnPg==\"\n}], [\"src/AuthCallback.vue\", {\n \"type\": \"base64\",\n \"body\": \"PHNjcmlwdCBzZXR1cCBsYW5nPSJ0cyI+CmltcG9ydCB7IG9uTW91bnRlZCwgcmVmIH0gZnJvbSAidnVlIjsKaW1wb3J0IHsgYXV0aCB9IGZyb20gIi4vY2xpZW50IjsKaW1wb3J0IHsgdXNlUm91dGVyIH0gZnJvbSAidnVlLXJvdXRlciI7Cgpjb25zdCByb3V0ZXIgPSB1c2VSb3V0ZXIoKTsKCmNvbnN0IGVycm9yID0gcmVmPHN0cmluZz4oKTsKCm9uTW91bnRlZCgoKSA9PiB7CiAgYXV0aAogICAgLnNpZ25JbigpCiAgICAudGhlbigoKSA9PiByb3V0ZXIucmVwbGFjZSgiLyIpKQogICAgLmNhdGNoKChlOiB1bmtub3duKSA9PiB7CiAgICAgIGVycm9yLnZhbHVlID0gKGUgYXMgRXJyb3IpLm1lc3NhZ2U7CiAgICB9KTsKfSk7Cjwvc2NyaXB0PgoKPHRlbXBsYXRlPgogIDxkaXY+e3sgZXJyb3IgIT0gbnVsbCA\\u002FIGVycm9yIDogIkF1dGhlbnRpY2F0aW5n4oCmIiB9fTwvZGl2Pgo8L3RlbXBsYXRlPgo=\"\n}], [\"src/Home.vue.hbs\", {\n type: \"raw\",\n body: `<script setup lang=\"ts\">\nimport { \\$Objects, \\$Actions, \\$Queries } from \"{{osdkPackage}}\";\n\nconst objectApiNames = Object.keys(\\$Objects);\nconst actionApiNames = Object.keys(\\$Actions);\nconst queryApiNames = Object.keys(\\$Queries);\n</script>\n\n<template>\n <h1>{{osdkPackage}}</h1>\n <p>\n Welcome to your Ontology SDK! Try using any of the following methods now.\n </p>\n <div class=\"methods\">\n <div>\n <h2>Objects (\\\\{{ objectApiNames.length }})</h2>\n <pre v-for=\"objectApiName in objectApiNames\" key=\"objectApiName\">\\$Objects.\\\\{{ objectApiName }}</pre>\n </div>\n <div>\n <h2>Actions (\\\\{{ actionApiNames.length }})</h2>\n <pre v-for=\"actionApiName in actionApiNames\" key=\"actionApiName\">\\$Actions.\\\\{{ actionApiName }}</pre>\n </div>\n <div>\n <h2>Queries (\\\\{{ queryApiNames.length }})</h2>\n <pre v-for=\"queryApiName in queryApiNames\" key=\"queryApiName\">\\$Queries.\\\\{{ queryApiName }}</pre>\n </div>\n </div>\n</template>\n\n<style scoped>\n.methods {\n padding: 2em;\n gap: 2em;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n}\n</style>\n`\n}], [\"src/Layout.vue\", {\n \"type\": \"base64\",\n \"body\": \"PHRlbXBsYXRlPgogIDxkaXY+CiAgICA8YQogICAgICBocmVmPSJodHRwczovL3d3dy5wYWxhbnRpci5jb20vZG9jcy9mb3VuZHJ5L29udG9sb2d5LXNkay9vdmVydmlldy8iCiAgICAgIHRhcmdldD0iX2JsYW5rIgogICAgPgogICAgICA8aW1nIHNyYz0iL3BhbGFudGlyLnN2ZyIgY2xhc3M9ImxvZ28iIGFsdD0iUGFsYW50aXIgbG9nbyIgLz4KICAgIDwvYT4KICAgIDxhIGhyZWY9Imh0dHBzOi8vdnVlanMub3JnLyIgdGFyZ2V0PSJfYmxhbmsiPgogICAgICA8aW1nIHNyYz0iL3Z1ZS5zdmciIGNsYXNzPSJsb2dvIiBhbHQ9IlZ1ZSBsb2dvIiAvPgogICAgPC9hPgogIDwvZGl2PgogIDxyb3V0ZXItdmlldyAvPgo8L3RlbXBsYXRlPgoKPHN0eWxlIHNjb3BlZD4KLmxvZ28gewogIGhlaWdodDogNmVtOwogIHBhZGRpbmc6IDEuNWVtOwogIHdpbGwtY2hhbmdlOiBmaWx0ZXI7CiAgdHJhbnNpdGlvbjogZmlsdGVyIDMwMG1zOwp9Ci5sb2dvOmhvdmVyIHsKICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMCAyZW0gIzY0NmNmZmFhKTsKfQo8L3N0eWxlPgo=\"\n}], [\"src/Login.vue\", {\n \"type\": \"base64\",\n \"body\": \"PHNjcmlwdCBzZXR1cCBsYW5nPSJ0cyI+CmltcG9ydCB7IG9uVXBkYXRlZCwgcmVmIH0gZnJvbSAidnVlIjsKaW1wb3J0IHsgYXV0aCB9IGZyb20gIi4vY2xpZW50IjsKaW1wb3J0IHsgdXNlUm91dGVyIH0gZnJvbSAidnVlLXJvdXRlciI7Cgpjb25zdCByb3V0ZXIgPSB1c2VSb3V0ZXIoKTsKCmNvbnN0IGlzTG9nZ2luZ0luID0gcmVmKGZhbHNlKTsKY29uc3QgZXJyb3IgPSByZWY8c3RyaW5nPigpOwoKY29uc3QgbG9naW4gPSBhc3luYyAoKSA9PiB7CiAgaXNMb2dnaW5nSW4udmFsdWUgPSB0cnVlOwogIHRyeSB7CiAgICBhd2FpdCBhdXRoLnNpZ25JbigpOwogIH0gY2F0Y2ggKGU6IHVua25vd24pIHsKICAgIGVycm9yLnZhbHVlID0gKGUgYXMgRXJyb3IpLm1lc3NhZ2U7CiAgfSBmaW5hbGx5IHsKICAgIGlzTG9nZ2luZ0luLnZhbHVlID0gZmFsc2U7CiAgfQp9OwoKb25VcGRhdGVkKCgpID0+IHsKICAvLyBJZiB0aGUgdG9rZW4gZXhpc3RzIGJ1dCBhIHVzZXIgdHJpZXMgdG8gbG9hZCAvbG9naW4sIHJlZGlyZWN0IHRvIHRoZSBob21lIHBhZ2UgaW5zdGVhZAogIGlmIChhdXRoLmdldFRva2VuT3JVbmRlZmluZWQoKSAhPSBudWxsKSB7CiAgICByb3V0ZXIucmVwbGFjZSgiLyIpOwogIH0KfSk7Cjwvc2NyaXB0PgoKPHRlbXBsYXRlPgogIDxoMT5PbnRvbG9neSBTREs8L2gxPgogIDxidXR0b24gQGNsaWNrPSJsb2dpbiI+CiAgICB7eyBpc0xvZ2dpbmdJbiA\\u002FICJMb2dnaW5nIGlu4oCmIiA6ICJMb2cgaW4gIiB9fQogIDwvYnV0dG9uPgogIDxkaXYgdi1pZj0iZXJyb3IiPlVuYWJsZSB0byBsb2cgaW46IHt7IGVycm9yIH19PC9kaXY+CjwvdGVtcGxhdGU+Cg==\"\n}], [\"src/client.ts.hbs\", {\n type: \"raw\",\n body: `import { createClient, type Client } from \"@osdk/client\";\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(\\`Meta tag \\${tagName} contains placeholder value. Please add \\${value.replace(/%/g, \"\")} to your .env files\\`);\n }\n return value;\n}\n\nconst foundryUrl = getMetaTagContent(\"osdk-foundryUrl\");\nconst clientId = getMetaTagContent(\"osdk-clientId\");\nconst redirectUrl = getMetaTagContent(\"osdk-redirectUrl\");\nconst ontologyRid = getMetaTagContent(\"osdk-ontologyRid\");\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/**\n * Initialize the client to interact with the Ontology SDK\n */\nconst client: Client = createClient(\n foundryUrl,\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/main.ts\", {\n \"type\": \"base64\",\n \"body\": \"aW1wb3J0IHsgY3JlYXRlQXBwIH0gZnJvbSAidnVlIjsKaW1wb3J0IHsgY3JlYXRlUm91dGVyLCBjcmVhdGVXZWJIaXN0b3J5IH0gZnJvbSAidnVlLXJvdXRlciI7CmltcG9ydCBBdXRoQ2FsbGJhY2sgZnJvbSAiLi9BdXRoQ2FsbGJhY2sudnVlIjsKaW1wb3J0IHsgYXV0aCB9IGZyb20gIi4vY2xpZW50IjsKaW1wb3J0IEhvbWUgZnJvbSAiLi9Ib21lLnZ1ZSI7CmltcG9ydCBMYXlvdXQgZnJvbSAiLi9MYXlvdXQudnVlIjsKaW1wb3J0IExvZ2luIGZyb20gIi4vTG9naW4udnVlIjsKaW1wb3J0ICIuL3N0eWxlLmNzcyI7Cgpjb25zdCByb3V0ZXMgPSBbCiAgeyBwYXRoOiAiLyIsIGNvbXBvbmVudDogSG9tZSwgbWV0YTogeyByZXF1aXJlc0F1dGg6IHRydWUgfSB9LAogIHsgcGF0aDogIi9sb2dpbiIsIGNvbXBvbmVudDogTG9naW4gfSwKICB7IHBhdGg6ICIvYXV0aC9jYWxsYmFjayIsIGNvbXBvbmVudDogQXV0aENhbGxiYWNrIH0sCl07Cgpjb25zdCByb3V0ZXIgPSBjcmVhdGVSb3V0ZXIoewogIGhpc3Rvcnk6IGNyZWF0ZVdlYkhpc3RvcnkoaW1wb3J0Lm1ldGEuZW52LkJBU0VfVVJMKSwKICByb3V0ZXMsCn0pOwoKcm91dGVyLmJlZm9yZUVhY2goYXN5bmMgKHRvKSA9PiB7CiAgaWYgKAogICAgdG8ubWV0YS5yZXF1aXJlc0F1dGgKICAgICYmIChhdXRoLmdldFRva2VuT3JVbmRlZmluZWQoKSA9PSBudWxsKQogICkgewogICAgdHJ5IHsKICAgICAgYXdhaXQgYXV0aC5yZWZyZXNoKCk7CiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7CiAgICAgIC8vIElmIHdlIGNhbm5vdCByZWZyZXNoIHRoZSB0b2tlbiAoaS5lLiB0aGUgdXNlciBpcyBub3QgbG9nZ2VkIGluKSB3ZSByZWRpcmVjdCB0byB0aGUgbG9naW4gcGFnZQogICAgICByZXR1cm4gIi9sb2dpbiI7CiAgICB9CiAgfQp9KTsKCmNyZWF0ZUFwcChMYXlvdXQpLnVzZShyb3V0ZXIpLm1vdW50KCIjYXBwIik7Cg==\"\n}], [\"src/style.css\", {\n \"type\": \"base64\",\n \"body\": \"OnJvb3QgewogIGZvbnQtZmFtaWx5OiBJbnRlciwgc3lzdGVtLXVpLCBBdmVuaXIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgbGluZS1oZWlnaHQ6IDEuNTsKICBmb250LXdlaWdodDogNDAwOwoKICBjb2xvci1zY2hlbWU6IGxpZ2h0IGRhcms7CiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nyk7CiAgYmFja2dyb3VuZC1jb2xvcjogIzI0MjQyNDsKCiAgZm9udC1zeW50aGVzaXM6IG5vbmU7CiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTsKICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwp9CgojYXBwLWNvbnRhaW5lciB7CiAgZGlzcGxheTogZmxleDsKICBmbGV4OiAxOwogIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KCiNhcHAgewogIG1heC13aWR0aDogMTI4MHB4OwogIG1hcmdpbjogMCBhdXRvOwogIHBhZGRpbmc6IDJyZW07CiAgdGV4dC1hbGlnbjogY2VudGVyOwp9CgphIHsKICBmb250LXdlaWdodDogNTAwOwogIGNvbG9yOiAjNjQ2Y2ZmOwogIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDsKfQphOmhvdmVyIHsKICBjb2xvcjogIzUzNWJmMjsKfQoKYm9keSB7CiAgbWFyZ2luOiAwOwogIGRpc3BsYXk6IGZsZXg7CiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICBtaW4td2lkdGg6IDMyMHB4OwogIG1pbi1oZWlnaHQ6IDEwMHZoOwp9CgpoMSB7CiAgZm9udC1zaXplOiAzLjJlbTsKICBsaW5lLWhlaWdodDogMS4xOwp9CgpidXR0b24gewogIGJvcmRlci1yYWRpdXM6IDhweDsKICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICBwYWRkaW5nOiAwLjZlbSAxLjJlbTsKICBmb250LXNpemU6IDFlbTsKICBmb250LXdlaWdodDogNTAwOwogIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogIGJhY2tncm91bmQtY29sb3I6ICMxYTFhMWE7CiAgY3Vyc29yOiBwb2ludGVyOwogIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjI1czsKfQpidXR0b246aG92ZXIgewogIGJvcmRlci1jb2xvcjogIzY0NmNmZjsKfQpidXR0b246Zm9jdXMsCmJ1dHRvbjpmb2N1cy12aXNpYmxlIHsKICBvdXRsaW5lOiA0cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7Cn0KCkBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGxpZ2h0KSB7CiAgOnJvb3QgewogICAgY29sb3I6ICMyMTM1NDc7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOwogIH0KICBhOmhvdmVyIHsKICAgIGNvbG9yOiAjNzQ3YmZmOwogIH0KICBidXR0b24gewogICAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTsKICB9Cn0K\"\n}], [\"src/vite-env.d.ts\", {\n \"type\": \"base64\",\n \"body\": \"Ly8vIDxyZWZlcmVuY2UgdHlwZXM9InZpdGUvY2xpZW50IiAvPgo=\"\n}], [\"tsconfig.json\", {\n \"type\": \"base64\",\n \"body\": \"ewogICJjb21waWxlck9wdGlvbnMiOiB7CiAgICAidGFyZ2V0IjogIkVTMjAyMCIsCiAgICAidXNlRGVmaW5lRm9yQ2xhc3NGaWVsZHMiOiB0cnVlLAogICAgIm1vZHVsZSI6ICJFU05leHQiLAogICAgImxpYiI6IFsiRVMyMDIwIiwgIkRPTSIsICJET00uSXRlcmFibGUiXSwKICAgICJza2lwTGliQ2hlY2siOiB0cnVlLAoKICAgIC8qIEJ1bmRsZXIgbW9kZSAqLwogICAgIm1vZHVsZVJlc29sdXRpb24iOiAiYnVuZGxlciIsCiAgICAiYWxsb3dJbXBvcnRpbmdUc0V4dGVuc2lvbnMiOiB0cnVlLAogICAgInJlc29sdmVKc29uTW9kdWxlIjogdHJ1ZSwKICAgICJpc29sYXRlZE1vZHVsZXMiOiB0cnVlLAogICAgIm5vRW1pdCI6IHRydWUsCiAgICAianN4IjogInByZXNlcnZlIiwKCiAgICAvKiBMaW50aW5nICovCiAgICAic3RyaWN0IjogdHJ1ZSwKICAgICJub1VudXNlZExvY2FscyI6IHRydWUsCiAgICAibm9VbnVzZWRQYXJhbWV0ZXJzIjogdHJ1ZSwKICAgICJub0ZhbGx0aHJvdWdoQ2FzZXNJblN3aXRjaCI6IHRydWUKICB9LAogICJpbmNsdWRlIjogWyJzcmMvKiovKi50cyIsICJzcmMvKiovKi50c3giLCAic3JjLyoqLyoudnVlIl0sCiAgInJlZmVyZW5jZXMiOiBbeyAicGF0aCI6ICIuL3RzY29uZmlnLm5vZGUuanNvbiIgfV0KfQo=\"\n}], [\"tsconfig.node.json\", {\n \"type\": \"base64\",\n \"body\": \"ewogICJjb21waWxlck9wdGlvbnMiOiB7CiAgICAiY29tcG9zaXRlIjogdHJ1ZSwKICAgICJza2lwTGliQ2hlY2siOiB0cnVlLAogICAgIm1vZHVsZSI6ICJFU05leHQiLAogICAgIm1vZHVsZVJlc29sdXRpb24iOiAiYnVuZGxlciIsCiAgICAiYWxsb3dTeW50aGV0aWNEZWZhdWx0SW1wb3J0cyI6IHRydWUKICB9LAogICJpbmNsdWRlIjogWyJ2aXRlLmNvbmZpZy50cyJdCn0K\"\n}], [\"vite.config.ts.hbs\", {\n type: \"raw\",\n body: `import vue from \"@vitejs/plugin-vue\";\nimport { defineConfig } from \"vite\";\n\n// https://vitejs.dev/config/\nexport default defineConfig(({ mode }) => { \n return {\n plugins: [vue()],\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 resolve: {\n alias: {\n vue: \"vue/dist/vue.esm-bundler\",\n },\n },\n define: {\n \"process.env.NODE_ENV\": JSON.stringify(mode),\n },\n };\n});\n`\n}]]);"]}
|
|
@@ -75,6 +75,10 @@ dist-ssr
|
|
|
75
75
|
<meta charset="UTF-8" />
|
|
76
76
|
<link rel="icon" type="image/svg+xml" href="/react.svg" />
|
|
77
77
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
78
|
+
<meta name="osdk-clientId" content="%VITE_FOUNDRY_CLIENT_ID%" />
|
|
79
|
+
<meta name="osdk-redirectUrl" content="%VITE_FOUNDRY_REDIRECT_URL%" />
|
|
80
|
+
<meta name="osdk-foundryUrl" content="%VITE_FOUNDRY_API_URL%" />
|
|
81
|
+
<meta name="osdk-ontologyRid" content="%VITE_FOUNDRY_ONTOLOGY_RID%" />
|
|
78
82
|
<title>Ontology SDK + React</title>
|
|
79
83
|
</head>
|
|
80
84
|
<body>
|
|
@@ -110,19 +114,19 @@ dist-ssr
|
|
|
110
114
|
"@eslint/js": "^9.13.0",
|
|
111
115
|
"@types/react": "^18",
|
|
112
116
|
"@types/react-dom": "^18",
|
|
113
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
114
|
-
"@typescript-eslint/parser": "^8.
|
|
117
|
+
"@typescript-eslint/eslint-plugin": "^8.32.0",
|
|
118
|
+
"@typescript-eslint/parser": "^8.32.0",
|
|
115
119
|
"@vitejs/plugin-react": "^4.2.0",
|
|
116
120
|
"eslint": "^9.19.0",
|
|
117
121
|
"eslint-plugin-import": "^2.31.0",
|
|
118
122
|
"eslint-plugin-jsx-a11y": "^6.10.1",
|
|
119
|
-
"eslint-plugin-react": "^7.37.
|
|
123
|
+
"eslint-plugin-react": "^7.37.5",
|
|
120
124
|
"eslint-plugin-react-hooks": "^5.0.0",
|
|
121
125
|
"eslint-plugin-react-refresh": "^0.4.14",
|
|
122
126
|
"globals": "^15.11.0",
|
|
123
127
|
"typescript": "~5.5.4",
|
|
124
|
-
"typescript-eslint": "^8.
|
|
125
|
-
"vite": "^6.
|
|
128
|
+
"typescript-eslint": "^8.32.0",
|
|
129
|
+
"vite": "^6.3.5",
|
|
126
130
|
"vitest": "^3.0.5"
|
|
127
131
|
}
|
|
128
132
|
}`
|
|
@@ -333,22 +337,30 @@ export default Login;
|
|
|
333
337
|
type: "raw",
|
|
334
338
|
body: `import { FoundryClient, PublicClientAuth } from "{{osdkPackage}}";
|
|
335
339
|
|
|
336
|
-
|
|
337
|
-
const
|
|
338
|
-
const
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
function checkEnv(
|
|
344
|
-
value: string | undefined,
|
|
345
|
-
name: string,
|
|
346
|
-
): asserts value is string {
|
|
347
|
-
if (value == null) {
|
|
348
|
-
throw new Error(\`Missing environment variable: \${name}\`);
|
|
340
|
+
function getMetaTagContent(tagName: string): string {
|
|
341
|
+
const elements = document.querySelectorAll(\`meta[name="\${tagName}"]\`);
|
|
342
|
+
const element = elements.item(elements.length - 1);
|
|
343
|
+
const value = element ? element.getAttribute("content") : null;
|
|
344
|
+
if (value == null || value === "") {
|
|
345
|
+
throw new Error(\`Meta tag \${tagName} not found or empty\`);
|
|
349
346
|
}
|
|
347
|
+
if (value.match(/%.+%/)) {
|
|
348
|
+
throw new Error(\`Meta tag \${tagName} contains placeholder value. Please add \${value.replace(/%/g, "")} to your .env files\`);
|
|
349
|
+
}
|
|
350
|
+
return value;
|
|
350
351
|
}
|
|
351
352
|
|
|
353
|
+
const url = getMetaTagContent("osdk-foundryUrl");
|
|
354
|
+
const clientId = getMetaTagContent("osdk-clientId");
|
|
355
|
+
const redirectUrl = getMetaTagContent("osdk-redirectUrl");
|
|
356
|
+
{{#if scopes}}
|
|
357
|
+
const scopes = [
|
|
358
|
+
{{#each scopes}}
|
|
359
|
+
"{{this}}",
|
|
360
|
+
{{/each}}
|
|
361
|
+
];
|
|
362
|
+
{{/if}}
|
|
363
|
+
|
|
352
364
|
/**
|
|
353
365
|
* Initialize the client to interact with the Ontology SDK
|
|
354
366
|
*/
|
|
@@ -359,11 +371,7 @@ const client = new FoundryClient({
|
|
|
359
371
|
url,
|
|
360
372
|
redirectUrl,
|
|
361
373
|
{{#if scopes}}
|
|
362
|
-
scopes
|
|
363
|
-
{{#each scopes}}
|
|
364
|
-
"{{this}}",
|
|
365
|
-
{{/each}}
|
|
366
|
-
],
|
|
374
|
+
scopes,
|
|
367
375
|
{{/if}}
|
|
368
376
|
}),
|
|
369
377
|
});
|
|
@@ -449,5 +457,5 @@ export default defineConfig({
|
|
|
449
457
|
}]]);
|
|
450
458
|
|
|
451
459
|
export { files };
|
|
452
|
-
//# sourceMappingURL=esm-
|
|
453
|
-
//# sourceMappingURL=esm-
|
|
460
|
+
//# sourceMappingURL=esm-KU5YPQC2.js.map
|
|
461
|
+
//# sourceMappingURL=esm-KU5YPQC2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../create-app.template.react/build/esm/generatedNoCheck/index.js"],"names":[],"mappings":"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","file":"esm-KU5YPQC2.js","sourcesContent":["export const files = new Map([[\"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}], [\"eslint.config.mjs\", {\n \"type\": \"base64\",\n \"body\": \"Ly8gQHRzLWNoZWNrCmltcG9ydCBlc2xpbnQgZnJvbSAiQGVzbGludC9qcyI7CmltcG9ydCB0c1BhcnNlciBmcm9tICJAdHlwZXNjcmlwdC1lc2xpbnQvcGFyc2VyIjsKaW1wb3J0ICogYXMgaW1wb3J0UGx1Z2luIGZyb20gImVzbGludC1wbHVnaW4taW1wb3J0IjsKaW1wb3J0IGpzeEExMXlQbHVnaW4gZnJvbSAiZXNsaW50LXBsdWdpbi1qc3gtYTExeSI7CmltcG9ydCByZWFjdFBsdWdpbiBmcm9tICJlc2xpbnQtcGx1Z2luLXJlYWN0IjsKaW1wb3J0IHJlYWN0SG9va3NQbHVnaW4gZnJvbSAiZXNsaW50LXBsdWdpbi1yZWFjdC1ob29rcyI7CmltcG9ydCByZWFjdFJlZnJlc2ggZnJvbSAiZXNsaW50LXBsdWdpbi1yZWFjdC1yZWZyZXNoIjsKaW1wb3J0IGdsb2JhbHMgZnJvbSAiZ2xvYmFscyI7CmltcG9ydCB0c2VzbGludCBmcm9tICJ0eXBlc2NyaXB0LWVzbGludCI7CgpleHBvcnQgZGVmYXVsdCB0c2VzbGludC5jb25maWcoewogIGZpbGVzOiBbImVzbGludC5jb25maWcubWpzIiwgInNyYy8qKi8qLntqcyxtanMsY2pzLHRzLGpzeCx0c3h9Il0sCiAgc2V0dGluZ3M6IHsKICAgIHJlYWN0OiB7CiAgICAgIHZlcnNpb246ICJkZXRlY3QiLAogICAgfSwKCiAgICAiaW1wb3J0L3Jlc29sdmVyIjogewogICAgICBub2RlOiB7CiAgICAgICAgZXh0ZW5zaW9uczogWyIuanMiLCAiLmpzeCIsICIudHMiLCAiLnRzeCJdLAogICAgICB9LAogICAgfSwKICB9LAogIGxhbmd1YWdlT3B0aW9uczogewogICAgZ2xvYmFsczogewogICAgICAuLi5nbG9iYWxzLmJyb3dzZXIsCiAgICB9LAoKICAgIHBhcnNlcjogdHNQYXJzZXIsCiAgfSwKICBleHRlbmRzOiBbCiAgICBlc2xpbnQuY29uZmlncy5yZWNvbW1lbmRlZCwKICAgIC4uLnRzZXNsaW50LmNvbmZpZ3MucmVjb21tZW5kZWQsCiAgXSwKICBwbHVnaW5zOiB7CiAgICAicmVhY3QiOiAvKiogQHR5cGUgaW1wb3J0KCJlc2xpbnQiKS5FU0xpbnQuUGx1Z2luICovIChyZWFjdFBsdWdpbiksCiAgICAicmVhY3QtcmVmcmVzaCI6IHJlYWN0UmVmcmVzaCwKICAgICJyZWFjdC1ob29rcyI6CiAgICAgIC8qKiBAdHlwZSBpbXBvcnQoImVzbGludCIpLkVTTGludC5QbHVnaW4gKi8gKHJlYWN0SG9va3NQbHVnaW4pLAogICAgImpzeC1hMTF5IjoganN4QTExeVBsdWdpbiwKICAgICJpbXBvcnQiOiBpbXBvcnRQbHVnaW4sCiAgfSwKICBydWxlczogewogICAgLi4uKAogICAgICAvKiogQHR5cGUgaW1wb3J0KCJlc2xpbnQiKS5MaW50ZXIuUnVsZXNSZWNvcmQgKi8KICAgICAgKHJlYWN0UGx1Z2luLmNvbmZpZ3MuZmxhdD8ucmVjb21tZW5kZWQucnVsZXMpCiAgICApLAogICAgInJlYWN0LWhvb2tzL3J1bGVzLW9mLWhvb2tzIjogImVycm9yIiwKICAgICJyZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHMiOiAid2FybiIsCiAgICAuLi5qc3hBMTF5UGx1Z2luLmNvbmZpZ3MucmVjb21tZW5kZWQucnVsZXMsCiAgICAicmVhY3QtcmVmcmVzaC9vbmx5LWV4cG9ydC1jb21wb25lbnRzIjogWyJ3YXJuIiwgewogICAgICBhbGxvd0NvbnN0YW50RXhwb3J0OiB0cnVlLAogICAgfV0sCgogICAgImltcG9ydC9uYW1lZCI6ICJlcnJvciIsCiAgICAiaW1wb3J0L2RlZmF1bHQiOiAiZXJyb3IiLAogICAgImltcG9ydC9uYW1lc3BhY2UiOiAiZXJyb3IiLAogICAgImltcG9ydC9uby1kdXBsaWNhdGVzIjogImVycm9yIiwKICAgICJpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXMiOiAiZXJyb3IiLAoKICAgICJyZWFjdC9yZWFjdC1pbi1qc3gtc2NvcGUiOiAib2ZmIiwKICB9LAp9KTsK\"\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 <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 <meta name=\"osdk-ontologyRid\" content=\"%VITE_FOUNDRY_ONTOLOGY_RID%\" />\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 . --report-unused-disable-directives --max-warnings 0\",\n \"test\": \"vitest run\",\n \"preview\": \"vite preview\"\n },\n \"dependencies\": {\n \"{{osdkPackage}}\": \"latest\",\n \"react\": \"^18\",\n \"react-dom\": \"^18\",\n \"react-router-dom\": \"^6.23.1\"\n },\n \"devDependencies\": {\n \"@eslint/compat\": \"^1.2.1\",\n \"@eslint/js\": \"^9.13.0\",\n \"@types/react\": \"^18\",\n \"@types/react-dom\": \"^18\",\n \"@typescript-eslint/eslint-plugin\": \"^8.32.0\",\n \"@typescript-eslint/parser\": \"^8.32.0\",\n \"@vitejs/plugin-react\": \"^4.2.0\",\n \"eslint\": \"^9.19.0\",\n \"eslint-plugin-import\": \"^2.31.0\",\n \"eslint-plugin-jsx-a11y\": \"^6.10.1\",\n \"eslint-plugin-react\": \"^7.37.5\",\n \"eslint-plugin-react-hooks\": \"^5.0.0\",\n \"eslint-plugin-react-refresh\": \"^0.4.14\",\n \"globals\": \"^15.11.0\",\n \"typescript\": \"~5.5.4\",\n \"typescript-eslint\": \"^8.32.0\",\n \"vite\": \"^6.3.5\",\n \"vitest\": \"^3.0.5\"\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 client 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 client.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/AuthenticatedRoute.tsx\", {\n type: \"raw\",\n body: `import { useEffect, useState } from \"react\";\nimport { Outlet, useNavigate } from \"react-router-dom\";\nimport client from \"./client\";\n\n/**\n * A component that can be used to wrap routes that require authentication.\n * Nested routes may assume that a valid token is present.\n */\nfunction AuthenticatedRoute() {\n const navigate = useNavigate();\n const [token, setToken] = useState(client.auth.token);\n useEffect(() => {\n if (client.auth.token == null || client.auth.token.isExpired) {\n client.auth\n .refresh()\n .then(() => {\n setToken(client.auth.token);\n })\n .catch(() => {\n // If we cannot refresh the token (i.e. the user is not logged in) we redirect to the login page\n navigate(\"/login\");\n });\n }\n }, [navigate]);\n\n if (token == null || token.isExpired) {\n return null;\n }\n\n return <Outlet />;\n}\n\nexport default AuthenticatedRoute;\n`\n}], [\"src/Home.module.css\", {\n \"type\": \"base64\",\n \"body\": \"Lm1ldGhvZHMgewogIHBhZGRpbmc6IDJlbTsKICBnYXA6IDJlbTsKICBkaXNwbGF5OiBmbGV4OwogIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgZmxleC13cmFwOiB3cmFwOwp9Cg==\"\n}], [\"src/Home.tsx.hbs\", {\n type: \"raw\",\n body: `import client from \"./client\";\nimport css from \"./Home.module.css\";\nimport Layout from \"./Layout\";\n\nfunction Home() {\n const objectApiNames = Object.keys(client.ontology.objects);\n const actionApiNames = Object.keys(client.ontology.actions);\n const queryApiNames = Object.keys(client.ontology.queries);\n\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 client.ontology.objects.{objectApiName}\n </pre>\n ))}\n </div>\n <div>\n <h2>Actions ({actionApiNames.length})</h2>\n {actionApiNames.map((actionApiName) => (\n <pre key={actionApiName}>\n client.ontology.actions.{actionApiName}\n </pre>\n ))}\n </div>\n <div>\n <h2>Queries ({queryApiNames.length})</h2>\n {queryApiNames.map((queryApiName) => (\n <pre key={queryApiName}>\n client.ontology.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 palantirLogo from \"/palantir.svg\";\nimport reactLogo from \"/react.svg\";\nimport React from \"react\";\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=\"noreferrer\"\n >\n <img src={palantirLogo} className={css.logo} alt=\"Palantir logo\" />\n </a>\n <a href=\"https://react.dev\" target=\"_blank\" rel=\"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/Login.tsx\", {\n type: \"raw\",\n body: `import { useCallback, useState } from \"react\";\nimport { Navigate } from \"react-router-dom\";\nimport client from \"./client\";\nimport Layout from \"./Layout\";\n\nfunction Login() {\n const [isLoggingIn, setIsLoggingIn] = useState(false);\n const [error, setError] = useState<string | undefined>(undefined);\n const token = client.auth.token;\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 client.auth.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 // If the token exists but a user tries to load /login, redirect to the home page instead\n if (token != null) {\n return <Navigate to=\"/\" replace={true} />;\n }\n\n return (\n <Layout>\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 </Layout>\n );\n}\n\nexport default Login;\n`\n}], [\"src/client.ts.hbs\", {\n type: \"raw\",\n body: `import { FoundryClient, PublicClientAuth } from \"{{osdkPackage}}\";\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(\\`Meta tag \\${tagName} contains placeholder value. Please add \\${value.replace(/%/g, \"\")} to your .env files\\`);\n }\n return value;\n}\n\nconst url = getMetaTagContent(\"osdk-foundryUrl\");\nconst clientId = getMetaTagContent(\"osdk-clientId\");\nconst redirectUrl = getMetaTagContent(\"osdk-redirectUrl\");\n{{#if scopes}}\nconst scopes = [\n {{#each scopes}}\n \"{{this}}\",\n {{/each}}\n];\n{{/if}}\n\n/**\n * Initialize the client to interact with the Ontology SDK\n */\nconst client = new FoundryClient({\n url,\n auth: new PublicClientAuth({\n clientId,\n url,\n redirectUrl,\n {{#if scopes}}\n scopes,\n {{/if}}\n }),\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 AuthenticatedRoute from \"./AuthenticatedRoute\";\nimport Home from \"./Home\";\nimport Login from \"./Login\";\nimport \"./index.css\";\n\nconst router = createBrowserRouter(\n [\n {\n path: \"/\",\n element: <AuthenticatedRoute />,\n children: [\n {\n path: \"/\",\n element: <Home />,\n },\n ],\n },\n {\n path: \"/login\",\n element: <Login />,\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({\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});\n`\n}]]);"]}
|