@osdk/create-widget 3.45.0 → 3.45.1-main-079b488ab60d42bb72d0e00785c05fa986e17be7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # @osdk/create-widget
2
2
 
3
+ ## 3.45.1-main-079b488ab60d42bb72d0e00785c05fa986e17be7
4
+
5
+ ### Patch Changes
6
+
7
+ - 079b488: Lowercase the generated package.json name field so scaffolded projects with uppercase names are npm-publishable
8
+ - Updated dependencies [079b488]
9
+ - @osdk/generator-utils@2.48.0-main-079b488ab60d42bb72d0e00785c05fa986e17be7
10
+
3
11
  ## 3.45.0
4
12
 
5
13
  ### Patch Changes
@@ -95,7 +95,7 @@ dist-ssr
95
95
  }], ["package.json.hbs", {
96
96
  type: "raw",
97
97
  body: `{
98
- "name": "{{project}}",
98
+ "name": "{{lowercase project}}",
99
99
  "private": true,
100
100
  "version": "0.0.0",
101
101
  "type": "module",
@@ -250,5 +250,5 @@ export default defineConfig({
250
250
  }]]);
251
251
 
252
252
  export { files };
253
- //# sourceMappingURL=esm-W2HHSUQU.js.map
254
- //# sourceMappingURL=esm-W2HHSUQU.js.map
253
+ //# sourceMappingURL=esm-37QK3TAO.js.map
254
+ //# sourceMappingURL=esm-37QK3TAO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../create-widget.template.minimal-react.v2/build/esm/generatedNoCheck/index.js"],"names":[],"mappings":"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","file":"esm-37QK3TAO.js","sourcesContent":["export const files = new Map([[\"README.md.hbs\", {\n type: \"raw\",\n body: `# {{project}}\n\nThis project was generated with [\\`@osdk/create-widget\\`](https://www.npmjs.com/package/@osdk/create-widget) and demonstrates developing custom widgets to be embedded within Foundry UIs such as Workshop. It uses React on top of Vite. Check out the [Vite](https://vitejs.dev/guide/) docs for further configuration. The Vite plugin [\\`@osdk/widget.vite-plugin\\`](https://www.npmjs.com/package/@osdk/widget.vite-plugin) automatically generates a \\`widgets.config.json\\` manifest file containing metadata about widgets inside this project during the build command.\n\n## Developing\n\nRun the following commands (or equivalent with your preferred package manager) to start a local development server and follow the instructions printed to set up developer mode in Foundry:\n\n\\`\\`\\`sh\nexport FOUNDRY_TOKEN=<token>\nnpm run dev\n\\`\\`\\`\n\n> **Note:** A widget no longer needs to be published before you can develop on it. Publishing a widget once (see [Deploying](#deploying)) is still required to use it in Workshop so that it becomes selectable in the **Widget setup** panel.\n\n## Deploying\n\nA \\`foundry.config.json\\` file is included in the root of this project containing the deployment configuration to Foundry.\n\nRun the following commands (or equivalent with your preferred package manager) to create a production build of your widgets:\n\n\\`\\`\\`sh\nexport FOUNDRY_TOKEN=<token>\nnpm run build\n\\`\\`\\`\n\nA \\`.palantir/widgets.config.json\\` manifest file containing metadata about your widgets is created during the build.\n\nRun the following command (or equivalent with your preferred package manager) to deploy the production build of your widgets:\n\n\\`\\`\\`sh\nnpx @osdk/cli@latest widgetset deploy\n\\`\\`\\`\n\nBy default the \\`package-json\\` strategy is used for determining the version for your widgets from the \\`version\\` field in this project's \\`package.json\\` file. Remember to update this field and rerun the build command to update the manifest file when deploying a new version.\n\nIf you prefer to infer the version from a git tag, you can use the \\`git-describe\\` strategy by setting the \\`autoVersion\\` field in the \\`foundry.config.json\\` file to:\n\n\\`\\`\\`json\n{\n \"type\": \"git-describe\",\n \"tagPrefix\": \"\"\n}\n\\`\\`\\`\n`\n}], [\".gitignore\", {\n type: \"raw\",\n body: `# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\npnpm-debug.log*\nlerna-debug.log*\n\nnode_modules\ndist\ndist-ssr\n*.local\n.pnpm-store\n\n# Editor directories and files\n.vscode/*\n!.vscode/extensions.json\n.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 <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <title>Minimal React Custom Widget</title>\n </head>\n <body>\n <div id=\"root\"></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\": \"{{lowercase 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 --passWithNoTests\",\n \"preview\": \"vite preview\"\n },\n \"dependencies\": {\n \"@osdk/react\": \"^2.0.0\",\n \"@osdk/widget.client-react\": \"^3.26.0\",\n \"@osdk/widget.client\": \"^3.26.0\",\n \"@blueprintjs/core\": \"^6.10.0\",\n \"clsx\": \"^2.1.1\",\n \"react\": \"^18\",\n \"react-dom\": \"^18\"\n },\n \"devDependencies\": {\n \"@osdk/widget.vite-plugin\": \"^3.26.0\",\n \"@eslint/compat\": \"^1.3.2\",\n \"@eslint/js\": \"^9.35.0\",\n \"@types/react\": \"^18\",\n \"@types/react-dom\": \"^18\",\n \"@typescript-eslint/eslint-plugin\": \"^8.43.0\",\n \"@typescript-eslint/parser\": \"^8.43.0\",\n \"@vitejs/plugin-react\": \"^4.7.0\",\n \"eslint\": \"^9.35.0\",\n \"eslint-plugin-import\": \"^2.32.0\",\n \"eslint-plugin-jsx-a11y\": \"^6.10.2\",\n \"eslint-plugin-react\": \"^7.37.5\",\n \"eslint-plugin-react-hooks\": \"^5.2.0\",\n \"eslint-plugin-react-refresh\": \"^0.4.20\",\n \"globals\": \"^15.15.0\",\n \"typescript\": \"~5.5.4\",\n \"typescript-eslint\": \"^8.43.0\",\n \"vite\": \"^7.3.1\",\n \"vitest\": \"^3.2.4\"\n }\n}`\n}], [\"src/Widget.module.css\", {\n \"type\": \"base64\",\n \"body\": \"LmNvbnRhaW5lciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13aGl0ZSk7CiAgICBwYWRkaW5nOiAyMHB4OwogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBoZWlnaHQ6IDEwMCU7Cn0KCkBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgIC5jb250YWluZXIgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRhcmstZ3JheTMpOwogICAgfQp9CgouY2FyZCB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDEwcHg7CiAgICB3aWR0aDogMTUwcHg7Cn0K\"\n}], [\"src/Widget.tsx\", {\n type: \"raw\",\n body: `import { Button, Card, Classes, H4 } from \"@blueprintjs/core\";\nimport {\n type FoundryWidgetClientContext,\n useFoundryWidgetContext,\n} from \"@osdk/widget.client-react\";\nimport clsx from \"clsx\";\nimport React, { useCallback, useEffect } from \"react\";\nimport type MainConfig from \"./main.config.js\";\nimport { useDarkTheme } from \"./useDarkTheme.js\";\nimport css from \"./Widget.module.css\";\n\nconst useWidgetContext: () => FoundryWidgetClientContext<typeof MainConfig> =\n useFoundryWidgetContext.withTypes<typeof MainConfig>();\n\nexport const Widget: React.FC = () => {\n const { parameters, emitEvent } = useWidgetContext();\n const greetingName = parameters.values.greetingName ?? \"World\";\n const counterValue = parameters.values.counterValue ?? 0;\n\n const setCounterValue = useCallback(\n (value: number) =>\n emitEvent(\"setCounterValue\", {\n parameterUpdates: { counterValue: value },\n }),\n [emitEvent],\n );\n\n const handleResetCounter = useCallback(() => setCounterValue(0), [\n setCounterValue,\n ]);\n\n useEffect(() => {\n const interval = setInterval(() => setCounterValue(counterValue + 1), 1000);\n return () => clearInterval(interval);\n }, [setCounterValue, counterValue]);\n\n const isDarkTheme = useDarkTheme();\n\n return (\n <div className={clsx(css.container, isDarkTheme && Classes.DARK)}>\n <H4>Hello, {greetingName}!</H4>\n <Card className={css.card} compact={true}>\n <div>Count: {counterValue}</div>\n <Button onClick={handleResetCounter}>Reset</Button>\n </Card>\n </div>\n );\n};\n`\n}], [\"src/main.config.ts\", {\n \"type\": \"base64\",\n \"body\": \"aW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSAiQG9zZGsvd2lkZ2V0LmNsaWVudCI7CgovLyBVcGRhdGVzIHRvIHRoZSB3aWRnZXQgY29uZmlndXJhdGlvbiBpbiB0aGlzIGZpbGUgcmVxdWlyZSByZWFwcGx5aW5nIGRldiBtb2RlCi8vIHRvIHByZXZpZXcgdGhlIGNoYW5nZXMuIFdoZW4gZGV2ZWxvcGluZyBsb2NhbGx5LCBvcGVuIHRoZSBzZXR1cCBVUkwgcHJpbnRlZAovLyBpbiB5b3VyIHRlcm1pbmFsIGFnYWluLiBXaGVuIGRldmVsb3BpbmcgaW4gQ29kZSBXb3Jrc3BhY2VzLCByZWZyZXNoIHRoZQovLyBwcmV2aWV3IHBhbmVsLgoKZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKHsKICBpZDogIndpZGdldElkIiwKICBuYW1lOiAiQ3VzdG9tIFdpZGdldCIsCiAgZGVzY3JpcHRpb246ICJBbiBleGFtcGxlIGN1c3RvbSB3aWRnZXQgaW1wbGVtZW50YXRpb24iLAogIHR5cGU6ICJ3b3Jrc2hvcCIsCiAgcGFyYW1ldGVyczogewogICAgZ3JlZXRpbmdOYW1lOiB7CiAgICAgIGRpc3BsYXlOYW1lOiAiR3JlZXRpbmcgbmFtZSIsCiAgICAgIHR5cGU6ICJzdHJpbmciLAogICAgfSwKICAgIGNvdW50ZXJWYWx1ZTogewogICAgICBkaXNwbGF5TmFtZTogIkNvdW50ZXIgdmFsdWUiLAogICAgICB0eXBlOiAibnVtYmVyIiwKICAgIH0sCiAgfSwKICBldmVudHM6IHsKICAgIHNldENvdW50ZXJWYWx1ZTogewogICAgICBkaXNwbGF5TmFtZTogIlNldCBjb3VudGVyIHZhbHVlIiwKICAgICAgcGFyYW1ldGVyVXBkYXRlSWRzOiBbImNvdW50ZXJWYWx1ZSJdLAogICAgfSwKICB9LAp9KTsK\"\n}], [\"src/main.css\", {\n \"type\": \"base64\",\n \"body\": \"aHRtbCwgYm9keSB7CiAgICBtYXJnaW46IDA7Cn0KCjpyb290IHsKICAgIC0td2hpdGU6ICNmZmZmZmY7CiAgICAtLWRhcmstZ3JheTM6ICMyZjM0M2M7Cn0K\"\n}], [\"src/main.tsx\", {\n type: \"raw\",\n body: `import \"@blueprintjs/core/lib/css/blueprint.css\";\nimport \"./main.css\";\n\nimport { FoundryWidget } from \"@osdk/widget.client-react\";\nimport { createRoot } from \"react-dom/client\";\nimport MainConfig from \"./main.config.js\";\nimport { Widget } from \"./Widget.js\";\n\nconst root = document.getElementById(\"root\")!;\n\ncreateRoot(root).render(\n <FoundryWidget config={MainConfig}>\n <Widget />\n </FoundryWidget>,\n);\n`\n}], [\"src/useDarkTheme.ts\", {\n \"type\": \"base64\",\n \"body\": \"aW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gInJlYWN0IjsKCmV4cG9ydCBjb25zdCB1c2VEYXJrVGhlbWUgPSAoKSA9PiB1c2VNZWRpYVF1ZXJ5KCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIik7Cgpjb25zdCB1c2VNZWRpYVF1ZXJ5ID0gKHF1ZXJ5OiBzdHJpbmcpID0+IHsKICBjb25zdCBbbWF0Y2hlcywgc2V0TWF0Y2hlc10gPSB1c2VTdGF0ZShmYWxzZSk7CgogIGNvbnN0IGhhbmRsZUNoYW5nZSA9IChlOiBNZWRpYVF1ZXJ5TGlzdEV2ZW50KSA9PiBzZXRNYXRjaGVzKGUubWF0Y2hlcyk7CgogIHVzZUVmZmVjdCgoKSA9PiB7CiAgICBjb25zdCBtID0gd2luZG93Lm1hdGNoTWVkaWEocXVlcnkpOwogICAgc2V0TWF0Y2hlcyhtLm1hdGNoZXMpOwogICAgbS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCBoYW5kbGVDaGFuZ2UpOwogICAgcmV0dXJuICgpID0+IHsKICAgICAgbS5yZW1vdmVFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCBoYW5kbGVDaGFuZ2UpOwogICAgfTsKICB9LCBbcXVlcnldKTsKCiAgcmV0dXJuIG1hdGNoZXM7Cn07Cg==\"\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 foundryWidgetPlugin from \"@osdk/widget.vite-plugin\";\nimport react from \"@vitejs/plugin-react\";\nimport { defineConfig } from \"vite\";\n\n// https://vitejs.dev/config/\nexport default defineConfig({\n plugins: [react(), foundryWidgetPlugin()],\n server: {\n port: 8080,\n cors: true,\n },\n build: {\n rollupOptions: {\n input: [\"./index.html\"],\n },\n },\n});\n`\n}]]);"]}
@@ -95,7 +95,7 @@ dist-ssr
95
95
  }], ["package.json.hbs", {
96
96
  type: "raw",
97
97
  body: `{
98
- "name": "{{project}}",
98
+ "name": "{{lowercase project}}",
99
99
  "private": true,
100
100
  "version": "0.0.0",
101
101
  "type": "module",
@@ -422,5 +422,5 @@ export default defineConfig({
422
422
  }]]);
423
423
 
424
424
  export { files };
425
- //# sourceMappingURL=esm-5KIZJMMW.js.map
426
- //# sourceMappingURL=esm-5KIZJMMW.js.map
425
+ //# sourceMappingURL=esm-5MPU5PF3.js.map
426
+ //# sourceMappingURL=esm-5MPU5PF3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../create-widget.template.react.v2/build/esm/generatedNoCheck/index.js"],"names":[],"mappings":";AAAO,IAAM,KAAA,mBAAQ,IAAI,GAAA,CAAI,CAAC,CAAC,eAAA,EAAiB;AAAA,EAC9C,IAAA,EAAM,KAAA;AAAA,EACN,IAAA,EAAM,CAAA;;AAAA;;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;;AAAA;AAAA;AAAA;;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA6CR,CAAC,CAAA,EAAG,CAAC,YAAA,EAAc;AAAA,EACjB,IAAA,EAAM,KAAA;AAAA,EACN,IAAA,EAAM,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA0BR,CAAC,CAAA,EAAG,CAAC,mBAAA,EAAqB;AAAA,EACxB,MAAA,EAAQ,QAAA;AAAA,EACR,MAAA,EAAQ;AACV,CAAC,CAAA,EAAG,CAAC,YAAA,EAAc;AAAA,EACjB,IAAA,EAAM,KAAA;AAAA,EACN,IAAA,EAAM,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAaR,CAAC,CAAA,EAAG,CAAC,kBAAA,EAAoB;AAAA,EACvB,IAAA,EAAM,KAAA;AAAA,EACN,IAAA,EAAM,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AA6CR,CAAC,CAAA,EAAG,CAAC,oBAAA,EAAsB;AAAA,EACzB,IAAA,EAAM,KAAA;AAAA,EACN,IAAA,EAAM,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAyKR,CAAC,CAAA,EAAG,CAAC,mBAAA,EAAqB;AAAA,EACxB,IAAA,EAAM,KAAA;AAAA,EACN,IAAA,EAAM,CAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUR,CAAC,CAAA,EAAG,CAAC,gBAAA,EAAkB;AAAA,EACrB,MAAA,EAAQ,QAAA;AAAA,EACR,MAAA,EAAQ;AACV,CAAC,CAAA,EAAG,CAAC,wBAAA,EAA0B;AAAA,EAC7B,IAAA,EAAM,KAAA;AAAA,EACN,IAAA,EAAM,CAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAmCR,CAAC,CAAA,EAAG,CAAC,cAAA,EAAgB;AAAA,EACnB,MAAA,EAAQ,QAAA;AAAA,EACR,MAAA,EAAQ;AACV,CAAC,CAAA,EAAG,CAAC,cAAA,EAAgB;AAAA,EACnB,IAAA,EAAM,KAAA;AAAA,EACN,IAAA,EAAM,CAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoBR,CAAC,CAAA,EAAG,CAAC,qBAAA,EAAuB;AAAA,EAC1B,MAAA,EAAQ,QAAA;AAAA,EACR,MAAA,EAAQ;AACV,CAAC,CAAA,EAAG,CAAC,mBAAA,EAAqB;AAAA,EACxB,MAAA,EAAQ,QAAA;AAAA,EACR,MAAA,EAAQ;AACV,CAAC,CAAA,EAAG,CAAC,eAAA,EAAiB;AAAA,EACpB,MAAA,EAAQ,QAAA;AAAA,EACR,MAAA,EAAQ;AACV,CAAC,CAAA,EAAG,CAAC,oBAAA,EAAsB;AAAA,EACzB,MAAA,EAAQ,QAAA;AAAA,EACR,MAAA,EAAQ;AACV,CAAC,CAAA,EAAG,CAAC,oBAAA,EAAsB;AAAA,EACzB,IAAA,EAAM,KAAA;AAAA,EACN,IAAA,EAAM,CAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkBR,CAAC,CAAC,CAAC","file":"esm-5MPU5PF3.js","sourcesContent":["export const files = new Map([[\"README.md.hbs\", {\n type: \"raw\",\n body: `# {{project}}\n\nThis project was generated with [\\`@osdk/create-widget\\`](https://www.npmjs.com/package/@osdk/create-widget) and demonstrates developing custom widgets to be embedded within Foundry UIs such as Workshop. It uses the Ontology SDK package \\`{{osdkPackage}}\\` with React on top of Vite. Check out the [Vite](https://vitejs.dev/guide/) docs for further configuration. The Vite plugin [\\`@osdk/widget.vite-plugin\\`](https://www.npmjs.com/package/@osdk/widget.vite-plugin) automatically generates a \\`widgets.config.json\\` manifest file containing metadata about widgets inside this project during the build command.\n\n## Developing\n\nRun the following commands (or equivalent with your preferred package manager) to start a local development server and follow the instructions printed to set up developer mode in Foundry:\n\n\\`\\`\\`sh\nexport FOUNDRY_TOKEN=<token>\nnpm run dev\n\\`\\`\\`\n\n> **Note:** A widget no longer needs to be published before you can develop on it. Publishing a widget once (see [Deploying](#deploying)) is still required to use it in Workshop so that it becomes selectable in the **Widget setup** panel.\n\n## Deploying\n\nA \\`foundry.config.json\\` file is included in the root of this project containing the deployment configuration to Foundry.\n\nRun the following commands (or equivalent with your preferred package manager) to create a production build of your widgets:\n\n\\`\\`\\`sh\nexport FOUNDRY_TOKEN=<token>\nnpm run build\n\\`\\`\\`\n\nA \\`.palantir/widgets.config.json\\` manifest file containing metadata about your widgets is created during the build.\n\nRun the following command (or equivalent with your preferred package manager) to deploy the production build of your widgets:\n\n\\`\\`\\`sh\nnpx @osdk/cli@latest widgetset deploy\n\\`\\`\\`\n\nBy default the \\`package-json\\` strategy is used for determining the version for your widgets from the \\`version\\` field in this project's \\`package.json\\` file. Remember to update this field and rerun the build command to update the manifest file when deploying a new version.\n\nIf you prefer to infer the version from a git tag, you can use the \\`git-describe\\` strategy by setting the \\`autoVersion\\` field in the \\`foundry.config.json\\` file to:\n\n\\`\\`\\`json\n{\n \"type\": \"git-describe\",\n \"tagPrefix\": \"\"\n}\n\\`\\`\\`\n`\n}], [\".gitignore\", {\n type: \"raw\",\n body: `# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\npnpm-debug.log*\nlerna-debug.log*\n\nnode_modules\ndist\ndist-ssr\n*.local\n.pnpm-store\n\n# Editor directories and files\n.vscode/*\n!.vscode/extensions.json\n.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 <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <title>Widget: Ontology SDK + React</title>\n </head>\n <body>\n <div id=\"root\"></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\": \"{{lowercase 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 --passWithNoTests\",\n \"preview\": \"vite preview\"\n },\n \"dependencies\": {\n \"{{osdkPackage}}\": \"latest\",\n \"@osdk/client\": \"^2.0.0\",\n \"@osdk/react\": \"^2.0.0\",\n \"@osdk/widget.client-react\": \"^3.26.0\",\n \"@osdk/widget.client\": \"^3.26.0\",\n \"@radix-ui/react-icons\": \"^1.3.2\",\n \"@radix-ui/themes\": \"^3.2.1\",\n \"react\": \"^18\",\n \"react-dom\": \"^18\"\n },\n \"devDependencies\": {\n \"@osdk/widget.vite-plugin\": \"^3.26.0\",\n \"@eslint/compat\": \"^1.3.2\",\n \"@eslint/js\": \"^9.35.0\",\n \"@types/react\": \"^18\",\n \"@types/react-dom\": \"^18\",\n \"@typescript-eslint/eslint-plugin\": \"^8.43.0\",\n \"@typescript-eslint/parser\": \"^8.43.0\",\n \"@vitejs/plugin-react\": \"^4.7.0\",\n \"eslint\": \"^9.35.0\",\n \"eslint-plugin-import\": \"^2.32.0\",\n \"eslint-plugin-jsx-a11y\": \"^6.10.2\",\n \"eslint-plugin-react\": \"^7.37.5\",\n \"eslint-plugin-react-hooks\": \"^5.2.0\",\n \"eslint-plugin-react-refresh\": \"^0.4.20\",\n \"globals\": \"^15.15.0\",\n \"typescript\": \"~5.5.4\",\n \"typescript-eslint\": \"^8.43.0\",\n \"vite\": \"^7.3.1\",\n \"vitest\": \"^3.2.4\"\n }\n}`\n}], [\"src/Widget.tsx.hbs\", {\n type: \"raw\",\n body: `import { \\$Actions, \\$Objects, \\$Queries } from \"{{osdkPackage}}\";\nimport {\n Box,\n Button,\n Checkbox,\n Container,\n Flex,\n Heading,\n Skeleton,\n Table,\n Text,\n TextField,\n Theme,\n} from \"@radix-ui/themes\";\nimport React, { useCallback, useState } from \"react\";\nimport { useWidgetContext } from \"./context.js\";\nimport { useDarkTheme } from \"./useDarkTheme.js\";\n// import { useOsdkClient } from \"@osdk/react\";\n// View the API documentation for your widget set to learn how to use the Ontology SDK.\n\nexport const Widget: React.FC = () => {\n // See Ontology and Platform SDK docs in Developer Console on how to\n // use the client object to access Ontology resources and platform APIs\n // const client = useOsdkClient();\n\n const { parameters, emitEvent } = useWidgetContext();\n const { headerText, todoItems } = parameters.values;\n const [newTodoItem, setNewTodoItem] = useState(\"\");\n\n const handleAddTodoItem = useCallback(() => {\n emitEvent(\"updateTodoItems\", {\n parameterUpdates: {\n todoItems: [...(todoItems ?? []), newTodoItem],\n },\n });\n setNewTodoItem(\"\");\n }, [emitEvent, newTodoItem, todoItems]);\n\n const handleNewTodoItemChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n setNewTodoItem(event.target.value);\n },\n []\n );\n\n const isDarkTheme = useDarkTheme();\n\n const objectApiNames = Object.keys(\\$Objects);\n const actionApiNames = Object.keys(\\$Actions);\n const queryApiNames = Object.keys(\\$Queries);\n\n return (\n <Theme appearance={isDarkTheme ? \"dark\" : \"light\"}>\n <Box p=\"2\">\n <Container size=\"1\">\n <Flex direction=\"column\" gap=\"4\">\n <Flex p=\"5\" direction=\"column\" gap=\"2\">\n <Heading size=\"4\">\n {parameters.state === \"loading\" ||\n parameters.state === \"not-started\" ? (\n <Skeleton>Hello, world!</Skeleton>\n ) : (\n headerText ?? \"{{project}}\"\n )}\n </Heading>\n\n <Table.Root>\n <Table.Header>\n <Table.Row>\n <Table.ColumnHeaderCell>Finished</Table.ColumnHeaderCell>\n <Table.ColumnHeaderCell>Item</Table.ColumnHeaderCell>\n </Table.Row>\n </Table.Header>\n\n <Table.Body>\n {(parameters.state === \"loading\" ||\n parameters.state === \"not-started\") && (\n <>\n <Table.Row>\n <Table.Cell>\n <Skeleton>\n <Checkbox />\n </Skeleton>\n </Table.Cell>\n <Table.Cell>\n <Skeleton>Loading cell</Skeleton>\n </Table.Cell>\n </Table.Row>\n <Table.Row>\n <Table.Cell>\n <Skeleton>\n <Checkbox />\n </Skeleton>\n </Table.Cell>\n <Table.Cell>\n <Skeleton>Loading cell</Skeleton>\n </Table.Cell>\n </Table.Row>\n </>\n )}\n {parameters.state === \"loaded\" &&\n todoItems?.map((item, index) => (\n <Table.Row key={index}>\n <Table.Cell>\n <Checkbox />\n </Table.Cell>\n <Table.Cell>{item}</Table.Cell>\n </Table.Row>\n ))}\n {parameters.state === \"loaded\" &&\n (todoItems ?? []).length === 0 && (\n <Table.Row>\n <Table.Cell colSpan={2}>No items yet</Table.Cell>\n </Table.Row>\n )}\n <Table.Row>\n <Table.Cell colSpan={2}>\n <Flex gap=\"2\">\n <TextField.Root\n value={newTodoItem}\n onChange={handleNewTodoItemChange}\n size=\"2\"\n placeholder=\"Add item…\"\n />\n <Button onClick={handleAddTodoItem}>Add item</Button>\n </Flex>\n </Table.Cell>\n </Table.Row>\n </Table.Body>\n </Table.Root>\n </Flex>\n <Box>\n <Flex direction=\"column\" gap=\"2\">\n <Text>\n Try any of the following methods from your Ontology SDK\n </Text>\n <Flex direction=\"column\" gap=\"1\">\n <Heading size=\"4\">Objects ({objectApiNames.length})</Heading>\n <pre>\n {objectApiNames.map((objectApiName) => (\n <div key={objectApiName}>client({objectApiName})</div>\n ))}\n </pre>\n </Flex>\n <Flex direction=\"column\" gap=\"1\">\n <Heading size=\"4\">Actions ({actionApiNames.length})</Heading>\n <pre>\n {actionApiNames.map((actionApiName) => (\n <div key={actionApiName}>client({actionApiName})</div>\n ))}\n </pre>\n </Flex>\n <Flex direction=\"column\" gap=\"1\">\n <Heading size=\"4\">Queries ({queryApiNames.length})</Heading>\n <pre>\n {queryApiNames.map((queryApiName) => (\n <div key={queryApiName}>client({queryApiName})</div>\n ))}\n </pre>\n </Flex>\n </Flex>\n </Box>\n </Flex>\n </Container>\n </Box>\n </Theme>\n );\n};\n`\n}], [\"src/client.ts.hbs\", {\n type: \"raw\",\n body: `import { \\$ontologyRid } from \"{{osdkPackage}}\";\nimport { createClient } from \"@osdk/client\";\nimport { createFoundryWidgetTokenProvider } from \"@osdk/widget.client\";\n\nexport const client = createClient(\n window.location.origin,\n \\$ontologyRid,\n createFoundryWidgetTokenProvider(),\n);\n`\n}], [\"src/context.ts\", {\n \"type\": \"base64\",\n \"body\": \"aW1wb3J0IHsgdXNlRm91bmRyeVdpZGdldENvbnRleHQgfSBmcm9tICJAb3Nkay93aWRnZXQuY2xpZW50LXJlYWN0IjsKaW1wb3J0IHR5cGUgTWFpbkNvbmZpZyBmcm9tICIuL21haW4uY29uZmlnLmpzIjsKCmV4cG9ydCBjb25zdCB1c2VXaWRnZXRDb250ZXh0ID0gdXNlRm91bmRyeVdpZGdldENvbnRleHQud2l0aFR5cGVzPAogIHR5cGVvZiBNYWluQ29uZmlnCj4oKTsK\"\n}], [\"src/main.config.ts.hbs\", {\n type: \"raw\",\n body: `import { defineConfig } from \"@osdk/widget.client\";\n\n// Updates to the widget configuration in this file require reapplying dev mode\n// to preview the changes. When developing locally, open the setup URL printed\n// in your terminal again. When developing in Code Workspaces, refresh the\n// preview panel.\n\nexport default defineConfig({\n id: \"widgetId\",\n name: \"Custom Widget\",\n description: \"An example custom widget implementation\",\n type: \"workshop\",\n parameters: {\n headerText: {\n displayName: \"Widget title\",\n type: \"string\",\n },\n todoItems: {\n displayName: \"Todo items\",\n type: \"array\",\n subType: \"string\",\n },\n },\n events: {\n updateHeader: {\n displayName: \"Update header\",\n parameterUpdateIds: [\"headerText\"],\n },\n updateTodoItems: {\n displayName: \"Update todo items\",\n parameterUpdateIds: [\"todoItems\"],\n },\n },\n});\n`\n}], [\"src/main.css\", {\n \"type\": \"base64\",\n \"body\": \"aHRtbCwgYm9keSB7CiAgICBtYXJnaW46IDA7Cn0KCi5yYWRpeC10aGVtZXM6d2hlcmUoW2RhdGEtaXMtcm9vdC10aGVtZT0ndHJ1ZSddKSB7CiAgICBtaW4taGVpZ2h0OiAwOwogICAgQHN1cHBvcnRzKG1pbi1oZWlnaHQ6IDEwMGR2aCkgewogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICB9Cn0K\"\n}], [\"src/main.tsx\", {\n type: \"raw\",\n body: `import \"@radix-ui/themes/styles.css\";\nimport \"./main.css\";\n\nimport { OsdkProvider } from \"@osdk/react\";\nimport { FoundryWidget } from \"@osdk/widget.client-react\";\nimport { createRoot } from \"react-dom/client\";\nimport { client } from \"./client.js\";\nimport MainConfig from \"./main.config.js\";\nimport { Widget } from \"./Widget.js\";\n\nconst root = document.getElementById(\"root\")!;\n\ncreateRoot(root).render(\n <FoundryWidget config={MainConfig} client={client}>\n <OsdkProvider client={client}>\n <Widget />\n </OsdkProvider>\n </FoundryWidget>,\n);\n`\n}], [\"src/useDarkTheme.ts\", {\n \"type\": \"base64\",\n \"body\": \"aW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gInJlYWN0IjsKCmV4cG9ydCBjb25zdCB1c2VEYXJrVGhlbWUgPSAoKSA9PiB1c2VNZWRpYVF1ZXJ5KCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIik7Cgpjb25zdCB1c2VNZWRpYVF1ZXJ5ID0gKHF1ZXJ5OiBzdHJpbmcpID0+IHsKICBjb25zdCBbbWF0Y2hlcywgc2V0TWF0Y2hlc10gPSB1c2VTdGF0ZShmYWxzZSk7CgogIGNvbnN0IGhhbmRsZUNoYW5nZSA9IChlOiBNZWRpYVF1ZXJ5TGlzdEV2ZW50KSA9PiBzZXRNYXRjaGVzKGUubWF0Y2hlcyk7CgogIHVzZUVmZmVjdCgoKSA9PiB7CiAgICBjb25zdCBtID0gd2luZG93Lm1hdGNoTWVkaWEocXVlcnkpOwogICAgc2V0TWF0Y2hlcyhtLm1hdGNoZXMpOwogICAgbS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCBoYW5kbGVDaGFuZ2UpOwogICAgcmV0dXJuICgpID0+IHsKICAgICAgbS5yZW1vdmVFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCBoYW5kbGVDaGFuZ2UpOwogICAgfTsKICB9LCBbcXVlcnldKTsKCiAgcmV0dXJuIG1hdGNoZXM7Cn07Cg==\"\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 foundryWidgetPlugin from \"@osdk/widget.vite-plugin\";\nimport react from \"@vitejs/plugin-react\";\nimport { defineConfig } from \"vite\";\n\n// https://vitejs.dev/config/\nexport default defineConfig({\n plugins: [react(), foundryWidgetPlugin()],\n server: {\n port: 8080,\n cors: true,\n },\n build: {\n rollupOptions: {\n input: [\"./index.html\"],\n },\n },\n});\n`\n}]]);"]}
@@ -4,6 +4,7 @@ import { createConsola, consola as consola$1 } from 'consola';
4
4
  import { colorize } from 'consola/utils';
5
5
  import fs2 from 'fs';
6
6
  import path2 from 'path';
7
+ import { lowercase } from '@osdk/generator-utils';
7
8
  import Handlebars from 'handlebars';
8
9
 
9
10
  // src/cli.ts
@@ -160,7 +161,7 @@ var TEMPLATES = [
160
161
  buildDirectory: "./dist",
161
162
  requiresOsdk: true,
162
163
  files: {
163
- "2.x": getPackageFiles(import('./esm-5KIZJMMW.js'))
164
+ "2.x": getPackageFiles(import('./esm-5MPU5PF3.js'))
164
165
  }
165
166
  },
166
167
  // Minimal React
@@ -171,7 +172,7 @@ var TEMPLATES = [
171
172
  buildDirectory: "./dist",
172
173
  requiresOsdk: false,
173
174
  files: {
174
- "2.x": getPackageFiles(import('./esm-W2HHSUQU.js'))
175
+ "2.x": getPackageFiles(import('./esm-37QK3TAO.js'))
175
176
  }
176
177
  }
177
178
  ];
@@ -255,6 +256,7 @@ ${packageScope}:registry=${osdkRegistryUrlWithTrailingSlash}
255
256
  }
256
257
 
257
258
  // src/run.ts
259
+ Handlebars.registerHelper("lowercase", lowercase);
258
260
  async function run({
259
261
  project,
260
262
  overwrite,
@@ -364,7 +366,7 @@ async function run({
364
366
 
365
367
  // src/cli.ts
366
368
  async function cli(args = process.argv) {
367
- const base = yargs(hideBin(args)).version("3.45.0").wrap(Math.min(150, yargs().terminalWidth())).strict().help().command("$0 [project] [--<option>]", "Create a new OSDK widget set based on framework templates. Information may be provided through options to skip interactive prompts.", (yargs2) => yargs2.positional("project", {
369
+ const base = yargs(hideBin(args)).version("3.45.1-main-079b488ab60d42bb72d0e00785c05fa986e17be7").wrap(Math.min(150, yargs().terminalWidth())).strict().help().command("$0 [project] [--<option>]", "Create a new OSDK widget set based on framework templates. Information may be provided through options to skip interactive prompts.", (yargs2) => yargs2.positional("project", {
368
370
  type: "string",
369
371
  describe: "Project name to create"
370
372
  }).option("overwrite", {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/consola.ts","../../src/highlight.ts","../../src/prompts/promptFoundryUrl.ts","../../src/prompts/promptOsdkPackage.ts","../../src/prompts/promptOsdkRegistryUrl.ts","../../src/prompts/promptOverwrite.ts","../../src/prompts/promptProject.ts","../../src/prompts/promptSdkVersion.ts","../../src/getPackageFiles.ts","../../src/generatedNoCheck/templates.ts","../../src/prompts/promptTemplate.ts","../../src/prompts/promptWidgetSetRid.ts","../../src/generate/generateFoundryConfigJson.ts","../../src/generate/generateNpmRc.ts","../../src/run.ts","../../src/cli.ts"],"names":["defaultConsola","fs","path","sdkVersion","template","yargs"],"mappings":"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","file":"index.js","sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola as defaultConsola, createConsola } from \"consola\";\n\n// https://github.com/unjs/consola?tab=readme-ov-file#await-promptmessage--type-cancel-\nconst cancelSymbol = Symbol.for(\"cancel\");\nexport const consola = createConsola({\n async prompt(message, opts) {\n const response = await defaultConsola.prompt(message, {\n ...opts,\n cancel: opts?.cancel ?? \"symbol\"\n });\n if (response === cancelSymbol) {\n defaultConsola.fail(\"Operation cancelled\");\n process.exit(0);\n }\n return response;\n }\n});","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { colorize } from \"consola/utils\";\nexport function green(text) {\n return colorize(\"green\", text);\n}\nexport function italic(text) {\n return colorize(\"italic\", text);\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola } from \"../consola.js\";\nimport { italic } from \"../highlight.js\";\nexport async function promptFoundryUrl({\n foundryUrl\n}) {\n while (foundryUrl == null || !foundryUrl.startsWith(\"https://\")) {\n if (foundryUrl != null) {\n consola.fail(\"Please enter a valid Foundry URL\");\n }\n foundryUrl = await consola.prompt(`Enter the URL for your Foundry stack:\\n${italic(\"(Example: https://example.palantirfoundry.com)\")}`, {\n type: \"text\"\n });\n }\n return foundryUrl.replace(/\\/$/u, \"\");\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola } from \"../consola.js\";\nimport { italic } from \"../highlight.js\";\nexport async function promptOsdkPackage({\n osdkPackage\n}) {\n while (osdkPackage == null || !/^@[a-z0-9-]+\\/sdk$/u.test(osdkPackage)) {\n if (osdkPackage != null) {\n consola.fail(\"Please enter a valid OSDK package name\");\n }\n osdkPackage = await consola.prompt(`Enter the OSDK package name for your widget set:\\n${italic(\"(Example: @my-widget/sdk)\")}`, {\n type: \"text\"\n });\n }\n return osdkPackage;\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola } from \"../consola.js\";\nimport { italic } from \"../highlight.js\";\nexport async function promptOsdkRegistryUrl({\n osdkRegistryUrl\n}) {\n while (osdkRegistryUrl == null || !/^https:\\/\\/[^/]+\\/artifacts\\/api\\/repositories\\/ri\\.[^/]+\\/contents\\/release\\/npm\\/?$/u.test(osdkRegistryUrl)) {\n if (osdkRegistryUrl != null) {\n consola.fail(\"Please enter a valid NPM registry URL to install your OSDK package\");\n }\n osdkRegistryUrl = await consola.prompt(`Enter the NPM registry URL to install your OSDK package:\\n${italic(\"(Example: https://example.palantirfoundry.com/artifacts/api/repositories/ri.artifacts.main.repository.a4a7fe1c-486f-4226-b706-7b90005f527d/contents/release/npm)\")}`, {\n type: \"text\"\n });\n }\n return osdkRegistryUrl.replace(/\\/$/u, \"\");\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { consola } from \"../consola.js\";\nimport { green } from \"../highlight.js\";\nexport async function promptOverwrite({\n project,\n overwrite\n}) {\n if (overwrite != null) {\n return overwrite;\n }\n if (!fs.existsSync(path.join(process.cwd(), project))) {\n return true;\n }\n const result = await consola.prompt(`The directory ${green(project)} already exists do you want to overwrite or ignore it?`, {\n type: \"select\",\n options: [{\n label: \"Remove existing files and continue\",\n value: \"overwrite\"\n }, {\n label: \"Ignore files and continue\",\n value: \"ignore\"\n }, {\n label: \"Cancel\",\n value: \"cancel\"\n }]\n });\n switch (result) {\n case \"overwrite\":\n return true;\n case \"ignore\":\n return false;\n case \"cancel\":\n consola.fail(\"Operation cancelled\");\n process.exit(0);\n }\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola } from \"../consola.js\";\nexport async function promptProject({\n project\n}) {\n while (project == null || !/^[a-zA-Z0-9-_]+$/u.test(project)) {\n if (project != null) {\n consola.fail(\"Project name can only contain alphanumeric characters, hyphens and underscores\");\n }\n project = await consola.prompt(\"Project name:\", {\n type: \"text\",\n placeholder: \"my-osdk-widget\",\n default: \"my-osdk-widget\"\n });\n }\n return project;\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola } from \"../consola.js\";\nexport async function promptSdkVersion({\n sdkVersion,\n template\n}) {\n if (sdkVersion == null) {\n // If the SDK version is not provided, default to the earliest template version for backwards-compatibility\n return Object.keys(template.files)[0];\n }\n if (template.files[sdkVersion] == null) {\n consola.fail(`The ${template.label} template does not support a \"${sdkVersion}\" SDK version.`);\n sdkVersion = await consola.prompt(`Please choose which version of the OSDK you'd like to use for the ${template.label} template:`, {\n type: \"select\",\n options: Object.keys(template.files).reverse().map(sdkVersion => ({\n label: sdkVersion,\n value: sdkVersion\n }))\n });\n }\n return sdkVersion;\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport const getPackageFiles = importPromise => async () => (await importPromise).files;","// THIS FILE IS GENERATED. DO NOT MODIFY.\n// You probably want to modify ../../../codegen.mjs instead.\n\nimport { getPackageFiles } from \"../getPackageFiles.js\";\nexport const TEMPLATES = [\n// OSDK React\n{\n id: \"template-widget-react\",\n label: \"OSDK React\",\n envPrefix: \"VITE_\",\n buildDirectory: \"./dist\",\n requiresOsdk: true,\n files: {\n \"2.x\": getPackageFiles(import(\"@osdk/create-widget.template.react.v2\"))\n }\n},\n// Minimal React\n{\n id: \"template-widget-minimal-react\",\n label: \"Minimal React\",\n envPrefix: \"VITE_\",\n buildDirectory: \"./dist\",\n requiresOsdk: false,\n files: {\n \"2.x\": getPackageFiles(import(\"@osdk/create-widget.template.minimal-react.v2\"))\n }\n}];","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola } from \"../consola.js\";\nimport { TEMPLATES } from \"../generatedNoCheck/templates.js\";\nimport { green } from \"../highlight.js\";\nexport async function promptTemplate(parsed) {\n const useBeta = parsed.beta ?? false;\n let template = TEMPLATES.find(t => t.id === parsed.template || t.id === `template-${parsed.template}`);\n if (template == null) {\n const availableTemplates = TEMPLATES.filter(template => !template.hidden && (useBeta ? template.isBeta === true :\n // isBeta could be null\n !template.isBeta));\n if (availableTemplates.length === 0) {\n throw new Error(\"No available templates found for the selected options.\");\n }\n const templateId = await consola.prompt(parsed.template != null ? `The provided template ${green(parsed.template)} is invalid please select a framework:` : \"Select a framework:\", {\n type: \"select\",\n options: availableTemplates.map(template => ({\n value: template.id,\n label: template.label\n }))\n });\n template = TEMPLATES.find(t => t.id === templateId);\n if (template == null) {\n throw new Error(`Template ${templateId} should be found`);\n }\n }\n return template;\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola } from \"../consola.js\";\nimport { italic } from \"../highlight.js\";\nexport async function promptWidgetSetRid({\n widgetSet\n}) {\n while (widgetSet == null || !/^ri\\.widgetregistry\\.\\.widget-set\\.[^.]+$/u.test(widgetSet)) {\n if (widgetSet != null) {\n consola.fail(\"Please enter a valid widget resource identifier (rid)\");\n }\n widgetSet = await consola.prompt(`Enter the resource identifier (rid) for your widget set:\\n${italic(\"(Example: ri.widgetregistry..widget-set.1c66b352-4e00-40d2-995d-061c9d533ace)\")}`, {\n type: \"text\"\n });\n }\n return widgetSet;\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function generateFoundryConfigJson({\n foundryUrl,\n widgetSet,\n repository,\n directory\n}) {\n return JSON.stringify({\n foundryUrl,\n widgetSet: {\n rid: widgetSet,\n repository,\n directory,\n autoVersion: {\n type: \"package-json\"\n }\n }\n }, null, 2) + \"\\n\";\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function generateNpmRc({\n foundryUrl,\n osdkPackage,\n osdkRegistryUrl\n}) {\n // pnpm requires a trailing slash in .npmrc\n // https://github.com/pnpm/pnpm/issues/5941\n const osdkRegistryUrlWithTrailingSlash = osdkRegistryUrl.endsWith(\"/\") ? osdkRegistryUrl : osdkRegistryUrl + \"/\";\n const formattedFoundryUrl = foundryUrl.replace(/^https:\\/\\//u, \"\").replace(/\\/$/u, \"\");\n const artifactsApiUrl = formattedFoundryUrl + \"/artifacts/api/\";\n const packageScope = osdkPackage.split(\"/\")[0];\n return `//${artifactsApiUrl}:_authToken=\\${FOUNDRY_TOKEN}\\n` + `${packageScope}:registry=${osdkRegistryUrlWithTrailingSlash}\\n`;\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport Handlebars from \"handlebars\";\nimport { consola } from \"./consola.js\";\nimport { generateFoundryConfigJson } from \"./generate/generateFoundryConfigJson.js\";\nimport { generateNpmRc } from \"./generate/generateNpmRc.js\";\nimport { green } from \"./highlight.js\";\nexport async function run({\n project,\n overwrite,\n template,\n sdkVersion,\n foundryUrl,\n widgetSet,\n repository,\n osdkPackage,\n osdkRegistryUrl\n}) {\n consola.log(\"\");\n consola.start(`Creating project ${green(project)} using template ${green(template.id)}`);\n const cwd = process.cwd();\n const root = path.join(cwd, project);\n if (fs.existsSync(root)) {\n if (overwrite) {\n consola.info(`Overwriting existing project directory`);\n fs.rmSync(root, {\n recursive: true,\n force: true\n });\n fs.mkdirSync(root, {\n recursive: true\n });\n } else {\n consola.info(`Reusing existing project directory`);\n }\n } else {\n consola.info(`Creating project directory`);\n fs.mkdirSync(root, {\n recursive: true\n });\n }\n consola.info(`Copying files into project directory`);\n if (template.files[sdkVersion] == null) {\n throw new Error(`The ${template.label} template does not support a \"${sdkVersion}\" SDK version.`);\n }\n const files = await template.files[sdkVersion]();\n for (const [filePath, contents] of files) {\n const finalPath = path.join(root, filePath);\n const dirPath = path.dirname(finalPath);\n await fs.promises.mkdir(dirPath, {\n recursive: true\n });\n await fs.promises.writeFile(finalPath, Buffer.from(contents.body, contents.type === \"raw\" ? \"utf-8\" : \"base64\"));\n }\n const templateContext = {\n project,\n osdkPackage\n };\n const processFiles = function (dir) {\n fs.readdirSync(dir).forEach(file => {\n file = dir + \"/\" + file;\n const stat = fs.statSync(file);\n if (stat.isDirectory()) {\n processFiles(file);\n return;\n }\n if (file.endsWith(\"/_gitignore\")) {\n fs.renameSync(file, file.replace(/\\/_gitignore$/u, \"/.gitignore\"));\n return;\n }\n if (!file.endsWith(\".hbs\")) {\n return;\n }\n const templated = Handlebars.compile(fs.readFileSync(file, \"utf-8\"))(templateContext);\n fs.writeFileSync(file.replace(/.hbs$/u, \"\"), templated);\n fs.rmSync(file);\n });\n };\n processFiles(root);\n if (template.requiresOsdk) {\n if (osdkPackage == null || osdkRegistryUrl == null) {\n throw new Error(`Template ${template.id} requires OSDK package and registry URL`);\n }\n const npmRc = generateNpmRc({\n osdkPackage,\n osdkRegistryUrl,\n foundryUrl\n });\n fs.writeFileSync(path.join(root, \".npmrc\"), npmRc);\n }\n const foundryConfigJson = generateFoundryConfigJson({\n foundryUrl,\n widgetSet,\n repository,\n directory: template.buildDirectory\n });\n fs.writeFileSync(path.join(root, \"foundry.config.json\"), foundryConfigJson);\n consola.success(\"Success\");\n const cdRelative = path.relative(cwd, root);\n consola.box({\n message: `Done! Run the following commands to get started:\\n` + `\\n` + ` \\`cd ${cdRelative}\\`\\n` + ` \\`export FOUNDRY_TOKEN=<token>\\`\\n` + ` \\`npm install\\`\\n` + ` \\`npm run dev\\``,\n style: {\n padding: 2,\n borderColor: \"green\",\n borderStyle: \"rounded\"\n }\n });\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport yargs from \"yargs\";\nimport { hideBin } from \"yargs/helpers\";\nimport { promptFoundryUrl } from \"./prompts/promptFoundryUrl.js\";\nimport { promptOsdkPackage } from \"./prompts/promptOsdkPackage.js\";\nimport { promptOsdkRegistryUrl } from \"./prompts/promptOsdkRegistryUrl.js\";\nimport { promptOverwrite } from \"./prompts/promptOverwrite.js\";\nimport { promptProject } from \"./prompts/promptProject.js\";\nimport { promptSdkVersion } from \"./prompts/promptSdkVersion.js\";\nimport { promptTemplate } from \"./prompts/promptTemplate.js\";\nimport { promptWidgetSetRid } from \"./prompts/promptWidgetSetRid.js\";\nimport { run } from \"./run.js\";\nexport async function cli(args = process.argv) {\n const base = yargs(hideBin(args)).version(process.env.PACKAGE_VERSION ?? \"\").wrap(Math.min(150, yargs().terminalWidth())).strict().help().command(\"$0 [project] [--<option>]\", \"Create a new OSDK widget set based on framework templates. Information may be provided through options to skip interactive prompts.\", yargs => yargs.positional(\"project\", {\n type: \"string\",\n describe: \"Project name to create\"\n }).option(\"overwrite\", {\n type: \"boolean\",\n describe: \"Overwrite project directory if already exists\"\n }).option(\"template\", {\n type: \"string\",\n describe: \"Template name to use\"\n }).option(\"sdkVersion\", {\n type: \"string\",\n describe: \"The OSDK version to use\"\n }).option(\"foundryUrl\", {\n type: \"string\",\n describe: \"URL for the Foundry stack\"\n }).option(\"widgetSet\", {\n type: \"string\",\n describe: \"Widget set resource identifier (rid)\"\n }).option(\"repository\", {\n type: \"string\",\n describe: \"Repository resource identifier (rid)\"\n }).option(\"osdkPackage\", {\n type: \"string\",\n describe: \"OSDK package name for application\"\n }).option(\"osdkRegistryUrl\", {\n type: \"string\",\n describe: \"URL for NPM registry to install OSDK package\"\n }));\n const parsed = base.parseSync();\n const project = await promptProject(parsed);\n const overwrite = await promptOverwrite({\n ...parsed,\n project\n });\n const template = await promptTemplate(parsed);\n const sdkVersion = await promptSdkVersion({\n ...parsed,\n template\n });\n const foundryUrl = await promptFoundryUrl(parsed);\n const repository = parsed.repository;\n const osdkPackage = template.requiresOsdk ? await promptOsdkPackage(parsed) : undefined;\n const osdkRegistryUrl = template.requiresOsdk ? await promptOsdkRegistryUrl(parsed) : undefined;\n const widgetSet = await promptWidgetSetRid(parsed);\n await run({\n project,\n overwrite,\n template,\n sdkVersion,\n foundryUrl,\n widgetSet,\n repository,\n osdkPackage,\n osdkRegistryUrl\n });\n}"]}
1
+ {"version":3,"sources":["../../src/consola.ts","../../src/highlight.ts","../../src/prompts/promptFoundryUrl.ts","../../src/prompts/promptOsdkPackage.ts","../../src/prompts/promptOsdkRegistryUrl.ts","../../src/prompts/promptOverwrite.ts","../../src/prompts/promptProject.ts","../../src/prompts/promptSdkVersion.ts","../../src/getPackageFiles.ts","../../src/generatedNoCheck/templates.ts","../../src/prompts/promptTemplate.ts","../../src/prompts/promptWidgetSetRid.ts","../../src/generate/generateFoundryConfigJson.ts","../../src/generate/generateNpmRc.ts","../../src/run.ts","../../src/cli.ts"],"names":["defaultConsola","fs","path","sdkVersion","template","yargs"],"mappings":"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","file":"index.js","sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola as defaultConsola, createConsola } from \"consola\";\n\n// https://github.com/unjs/consola?tab=readme-ov-file#await-promptmessage--type-cancel-\nconst cancelSymbol = Symbol.for(\"cancel\");\nexport const consola = createConsola({\n async prompt(message, opts) {\n const response = await defaultConsola.prompt(message, {\n ...opts,\n cancel: opts?.cancel ?? \"symbol\"\n });\n if (response === cancelSymbol) {\n defaultConsola.fail(\"Operation cancelled\");\n process.exit(0);\n }\n return response;\n }\n});","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { colorize } from \"consola/utils\";\nexport function green(text) {\n return colorize(\"green\", text);\n}\nexport function italic(text) {\n return colorize(\"italic\", text);\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola } from \"../consola.js\";\nimport { italic } from \"../highlight.js\";\nexport async function promptFoundryUrl({\n foundryUrl\n}) {\n while (foundryUrl == null || !foundryUrl.startsWith(\"https://\")) {\n if (foundryUrl != null) {\n consola.fail(\"Please enter a valid Foundry URL\");\n }\n foundryUrl = await consola.prompt(`Enter the URL for your Foundry stack:\\n${italic(\"(Example: https://example.palantirfoundry.com)\")}`, {\n type: \"text\"\n });\n }\n return foundryUrl.replace(/\\/$/u, \"\");\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola } from \"../consola.js\";\nimport { italic } from \"../highlight.js\";\nexport async function promptOsdkPackage({\n osdkPackage\n}) {\n while (osdkPackage == null || !/^@[a-z0-9-]+\\/sdk$/u.test(osdkPackage)) {\n if (osdkPackage != null) {\n consola.fail(\"Please enter a valid OSDK package name\");\n }\n osdkPackage = await consola.prompt(`Enter the OSDK package name for your widget set:\\n${italic(\"(Example: @my-widget/sdk)\")}`, {\n type: \"text\"\n });\n }\n return osdkPackage;\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola } from \"../consola.js\";\nimport { italic } from \"../highlight.js\";\nexport async function promptOsdkRegistryUrl({\n osdkRegistryUrl\n}) {\n while (osdkRegistryUrl == null || !/^https:\\/\\/[^/]+\\/artifacts\\/api\\/repositories\\/ri\\.[^/]+\\/contents\\/release\\/npm\\/?$/u.test(osdkRegistryUrl)) {\n if (osdkRegistryUrl != null) {\n consola.fail(\"Please enter a valid NPM registry URL to install your OSDK package\");\n }\n osdkRegistryUrl = await consola.prompt(`Enter the NPM registry URL to install your OSDK package:\\n${italic(\"(Example: https://example.palantirfoundry.com/artifacts/api/repositories/ri.artifacts.main.repository.a4a7fe1c-486f-4226-b706-7b90005f527d/contents/release/npm)\")}`, {\n type: \"text\"\n });\n }\n return osdkRegistryUrl.replace(/\\/$/u, \"\");\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { consola } from \"../consola.js\";\nimport { green } from \"../highlight.js\";\nexport async function promptOverwrite({\n project,\n overwrite\n}) {\n if (overwrite != null) {\n return overwrite;\n }\n if (!fs.existsSync(path.join(process.cwd(), project))) {\n return true;\n }\n const result = await consola.prompt(`The directory ${green(project)} already exists do you want to overwrite or ignore it?`, {\n type: \"select\",\n options: [{\n label: \"Remove existing files and continue\",\n value: \"overwrite\"\n }, {\n label: \"Ignore files and continue\",\n value: \"ignore\"\n }, {\n label: \"Cancel\",\n value: \"cancel\"\n }]\n });\n switch (result) {\n case \"overwrite\":\n return true;\n case \"ignore\":\n return false;\n case \"cancel\":\n consola.fail(\"Operation cancelled\");\n process.exit(0);\n }\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola } from \"../consola.js\";\nexport async function promptProject({\n project\n}) {\n while (project == null || !/^[a-zA-Z0-9-_]+$/u.test(project)) {\n if (project != null) {\n consola.fail(\"Project name can only contain alphanumeric characters, hyphens and underscores\");\n }\n project = await consola.prompt(\"Project name:\", {\n type: \"text\",\n placeholder: \"my-osdk-widget\",\n default: \"my-osdk-widget\"\n });\n }\n return project;\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola } from \"../consola.js\";\nexport async function promptSdkVersion({\n sdkVersion,\n template\n}) {\n if (sdkVersion == null) {\n // If the SDK version is not provided, default to the earliest template version for backwards-compatibility\n return Object.keys(template.files)[0];\n }\n if (template.files[sdkVersion] == null) {\n consola.fail(`The ${template.label} template does not support a \"${sdkVersion}\" SDK version.`);\n sdkVersion = await consola.prompt(`Please choose which version of the OSDK you'd like to use for the ${template.label} template:`, {\n type: \"select\",\n options: Object.keys(template.files).reverse().map(sdkVersion => ({\n label: sdkVersion,\n value: sdkVersion\n }))\n });\n }\n return sdkVersion;\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport const getPackageFiles = importPromise => async () => (await importPromise).files;","// THIS FILE IS GENERATED. DO NOT MODIFY.\n// You probably want to modify ../../../codegen.mjs instead.\n\nimport { getPackageFiles } from \"../getPackageFiles.js\";\nexport const TEMPLATES = [\n// OSDK React\n{\n id: \"template-widget-react\",\n label: \"OSDK React\",\n envPrefix: \"VITE_\",\n buildDirectory: \"./dist\",\n requiresOsdk: true,\n files: {\n \"2.x\": getPackageFiles(import(\"@osdk/create-widget.template.react.v2\"))\n }\n},\n// Minimal React\n{\n id: \"template-widget-minimal-react\",\n label: \"Minimal React\",\n envPrefix: \"VITE_\",\n buildDirectory: \"./dist\",\n requiresOsdk: false,\n files: {\n \"2.x\": getPackageFiles(import(\"@osdk/create-widget.template.minimal-react.v2\"))\n }\n}];","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola } from \"../consola.js\";\nimport { TEMPLATES } from \"../generatedNoCheck/templates.js\";\nimport { green } from \"../highlight.js\";\nexport async function promptTemplate(parsed) {\n const useBeta = parsed.beta ?? false;\n let template = TEMPLATES.find(t => t.id === parsed.template || t.id === `template-${parsed.template}`);\n if (template == null) {\n const availableTemplates = TEMPLATES.filter(template => !template.hidden && (useBeta ? template.isBeta === true :\n // isBeta could be null\n !template.isBeta));\n if (availableTemplates.length === 0) {\n throw new Error(\"No available templates found for the selected options.\");\n }\n const templateId = await consola.prompt(parsed.template != null ? `The provided template ${green(parsed.template)} is invalid please select a framework:` : \"Select a framework:\", {\n type: \"select\",\n options: availableTemplates.map(template => ({\n value: template.id,\n label: template.label\n }))\n });\n template = TEMPLATES.find(t => t.id === templateId);\n if (template == null) {\n throw new Error(`Template ${templateId} should be found`);\n }\n }\n return template;\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola } from \"../consola.js\";\nimport { italic } from \"../highlight.js\";\nexport async function promptWidgetSetRid({\n widgetSet\n}) {\n while (widgetSet == null || !/^ri\\.widgetregistry\\.\\.widget-set\\.[^.]+$/u.test(widgetSet)) {\n if (widgetSet != null) {\n consola.fail(\"Please enter a valid widget resource identifier (rid)\");\n }\n widgetSet = await consola.prompt(`Enter the resource identifier (rid) for your widget set:\\n${italic(\"(Example: ri.widgetregistry..widget-set.1c66b352-4e00-40d2-995d-061c9d533ace)\")}`, {\n type: \"text\"\n });\n }\n return widgetSet;\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function generateFoundryConfigJson({\n foundryUrl,\n widgetSet,\n repository,\n directory\n}) {\n return JSON.stringify({\n foundryUrl,\n widgetSet: {\n rid: widgetSet,\n repository,\n directory,\n autoVersion: {\n type: \"package-json\"\n }\n }\n }, null, 2) + \"\\n\";\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function generateNpmRc({\n foundryUrl,\n osdkPackage,\n osdkRegistryUrl\n}) {\n // pnpm requires a trailing slash in .npmrc\n // https://github.com/pnpm/pnpm/issues/5941\n const osdkRegistryUrlWithTrailingSlash = osdkRegistryUrl.endsWith(\"/\") ? osdkRegistryUrl : osdkRegistryUrl + \"/\";\n const formattedFoundryUrl = foundryUrl.replace(/^https:\\/\\//u, \"\").replace(/\\/$/u, \"\");\n const artifactsApiUrl = formattedFoundryUrl + \"/artifacts/api/\";\n const packageScope = osdkPackage.split(\"/\")[0];\n return `//${artifactsApiUrl}:_authToken=\\${FOUNDRY_TOKEN}\\n` + `${packageScope}:registry=${osdkRegistryUrlWithTrailingSlash}\\n`;\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { lowercase } from \"@osdk/generator-utils\";\nimport Handlebars from \"handlebars\";\nimport { consola } from \"./consola.js\";\nimport { generateFoundryConfigJson } from \"./generate/generateFoundryConfigJson.js\";\nimport { generateNpmRc } from \"./generate/generateNpmRc.js\";\nimport { green } from \"./highlight.js\";\n// Register the shared `lowercase` helper so template `package.json` name\n// fields can enforce npm-safe (lowercase) package names.\nHandlebars.registerHelper(\"lowercase\", lowercase);\nexport async function run({\n project,\n overwrite,\n template,\n sdkVersion,\n foundryUrl,\n widgetSet,\n repository,\n osdkPackage,\n osdkRegistryUrl\n}) {\n consola.log(\"\");\n consola.start(`Creating project ${green(project)} using template ${green(template.id)}`);\n const cwd = process.cwd();\n const root = path.join(cwd, project);\n if (fs.existsSync(root)) {\n if (overwrite) {\n consola.info(`Overwriting existing project directory`);\n fs.rmSync(root, {\n recursive: true,\n force: true\n });\n fs.mkdirSync(root, {\n recursive: true\n });\n } else {\n consola.info(`Reusing existing project directory`);\n }\n } else {\n consola.info(`Creating project directory`);\n fs.mkdirSync(root, {\n recursive: true\n });\n }\n consola.info(`Copying files into project directory`);\n if (template.files[sdkVersion] == null) {\n throw new Error(`The ${template.label} template does not support a \"${sdkVersion}\" SDK version.`);\n }\n const files = await template.files[sdkVersion]();\n for (const [filePath, contents] of files) {\n const finalPath = path.join(root, filePath);\n const dirPath = path.dirname(finalPath);\n await fs.promises.mkdir(dirPath, {\n recursive: true\n });\n await fs.promises.writeFile(finalPath, Buffer.from(contents.body, contents.type === \"raw\" ? \"utf-8\" : \"base64\"));\n }\n const templateContext = {\n project,\n osdkPackage\n };\n const processFiles = function (dir) {\n fs.readdirSync(dir).forEach(file => {\n file = dir + \"/\" + file;\n const stat = fs.statSync(file);\n if (stat.isDirectory()) {\n processFiles(file);\n return;\n }\n if (file.endsWith(\"/_gitignore\")) {\n fs.renameSync(file, file.replace(/\\/_gitignore$/u, \"/.gitignore\"));\n return;\n }\n if (!file.endsWith(\".hbs\")) {\n return;\n }\n const templated = Handlebars.compile(fs.readFileSync(file, \"utf-8\"))(templateContext);\n fs.writeFileSync(file.replace(/.hbs$/u, \"\"), templated);\n fs.rmSync(file);\n });\n };\n processFiles(root);\n if (template.requiresOsdk) {\n if (osdkPackage == null || osdkRegistryUrl == null) {\n throw new Error(`Template ${template.id} requires OSDK package and registry URL`);\n }\n const npmRc = generateNpmRc({\n osdkPackage,\n osdkRegistryUrl,\n foundryUrl\n });\n fs.writeFileSync(path.join(root, \".npmrc\"), npmRc);\n }\n const foundryConfigJson = generateFoundryConfigJson({\n foundryUrl,\n widgetSet,\n repository,\n directory: template.buildDirectory\n });\n fs.writeFileSync(path.join(root, \"foundry.config.json\"), foundryConfigJson);\n consola.success(\"Success\");\n const cdRelative = path.relative(cwd, root);\n consola.box({\n message: `Done! Run the following commands to get started:\\n` + `\\n` + ` \\`cd ${cdRelative}\\`\\n` + ` \\`export FOUNDRY_TOKEN=<token>\\`\\n` + ` \\`npm install\\`\\n` + ` \\`npm run dev\\``,\n style: {\n padding: 2,\n borderColor: \"green\",\n borderStyle: \"rounded\"\n }\n });\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport yargs from \"yargs\";\nimport { hideBin } from \"yargs/helpers\";\nimport { promptFoundryUrl } from \"./prompts/promptFoundryUrl.js\";\nimport { promptOsdkPackage } from \"./prompts/promptOsdkPackage.js\";\nimport { promptOsdkRegistryUrl } from \"./prompts/promptOsdkRegistryUrl.js\";\nimport { promptOverwrite } from \"./prompts/promptOverwrite.js\";\nimport { promptProject } from \"./prompts/promptProject.js\";\nimport { promptSdkVersion } from \"./prompts/promptSdkVersion.js\";\nimport { promptTemplate } from \"./prompts/promptTemplate.js\";\nimport { promptWidgetSetRid } from \"./prompts/promptWidgetSetRid.js\";\nimport { run } from \"./run.js\";\nexport async function cli(args = process.argv) {\n const base = yargs(hideBin(args)).version(process.env.PACKAGE_VERSION ?? \"\").wrap(Math.min(150, yargs().terminalWidth())).strict().help().command(\"$0 [project] [--<option>]\", \"Create a new OSDK widget set based on framework templates. Information may be provided through options to skip interactive prompts.\", yargs => yargs.positional(\"project\", {\n type: \"string\",\n describe: \"Project name to create\"\n }).option(\"overwrite\", {\n type: \"boolean\",\n describe: \"Overwrite project directory if already exists\"\n }).option(\"template\", {\n type: \"string\",\n describe: \"Template name to use\"\n }).option(\"sdkVersion\", {\n type: \"string\",\n describe: \"The OSDK version to use\"\n }).option(\"foundryUrl\", {\n type: \"string\",\n describe: \"URL for the Foundry stack\"\n }).option(\"widgetSet\", {\n type: \"string\",\n describe: \"Widget set resource identifier (rid)\"\n }).option(\"repository\", {\n type: \"string\",\n describe: \"Repository resource identifier (rid)\"\n }).option(\"osdkPackage\", {\n type: \"string\",\n describe: \"OSDK package name for application\"\n }).option(\"osdkRegistryUrl\", {\n type: \"string\",\n describe: \"URL for NPM registry to install OSDK package\"\n }));\n const parsed = base.parseSync();\n const project = await promptProject(parsed);\n const overwrite = await promptOverwrite({\n ...parsed,\n project\n });\n const template = await promptTemplate(parsed);\n const sdkVersion = await promptSdkVersion({\n ...parsed,\n template\n });\n const foundryUrl = await promptFoundryUrl(parsed);\n const repository = parsed.repository;\n const osdkPackage = template.requiresOsdk ? await promptOsdkPackage(parsed) : undefined;\n const osdkRegistryUrl = template.requiresOsdk ? await promptOsdkRegistryUrl(parsed) : undefined;\n const widgetSet = await promptWidgetSetRid(parsed);\n await run({\n project,\n overwrite,\n template,\n sdkVersion,\n foundryUrl,\n widgetSet,\n repository,\n osdkPackage,\n osdkRegistryUrl\n });\n}"]}
@@ -1 +1 @@
1
- {"mappings":"AAyBA,cAAc,YAAY,gBAAiC,gBAAiB;UAElE,QAAQ;CAChB;CACA;CACA,UAAU;CACV,YAAY;CACZ;CACA;CACA;CACA;CACA;AACD;AAED,OAAO,iBAAe,IAAI,EACxB,SACA,WACA,UACA,YACA,YACA,WACA,YACA,aACA,iBACQ,EAAP,UAAU","names":[],"sources":["../../src/run.ts"],"version":3,"file":"run.d.ts"}
1
+ {"mappings":"AA0BA,cAAc,YAAY,gBAAiC,gBAAiB;UAMlE,QAAQ;CAChB;CACA;CACA,UAAU;CACV,YAAY;CACZ;CACA;CACA;CACA;CACA;AACD;AAED,OAAO,iBAAe,IAAI,EACxB,SACA,WACA,UACA,YACA,YACA,WACA,YACA,aACA,iBACQ,EAAP,UAAU","names":[],"sources":["../../src/run.ts"],"version":3,"file":"run.d.ts"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@osdk/create-widget",
3
- "version": "3.45.0",
3
+ "version": "3.45.1-main-079b488ab60d42bb72d0e00785c05fa986e17be7",
4
4
  "description": "",
5
5
  "access": "public",
6
6
  "license": "Apache-2.0",
@@ -29,7 +29,7 @@
29
29
  "find-up": "7.0.0",
30
30
  "handlebars": "4.7.8",
31
31
  "yargs": "17.7.2",
32
- "@osdk/generator-utils": "2.47.0"
32
+ "@osdk/generator-utils": "2.48.0-main-079b488ab60d42bb72d0e00785c05fa986e17be7"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@types/node": "^18.19.124",
@@ -39,8 +39,8 @@
39
39
  "redent": "^4.0.0",
40
40
  "tmp": "^0.2.5",
41
41
  "typescript": "~5.5.4",
42
- "@osdk/create-widget.template.minimal-react.v2": "3.45.0",
43
- "@osdk/create-widget.template.react.v2": "3.45.0",
42
+ "@osdk/create-widget.template.minimal-react.v2": "3.45.1-main-079b488ab60d42bb72d0e00785c05fa986e17be7",
43
+ "@osdk/create-widget.template.react.v2": "3.45.1-main-079b488ab60d42bb72d0e00785c05fa986e17be7",
44
44
  "@osdk/monorepo.api-extractor": "~0.7.0",
45
45
  "@osdk/monorepo.tool.check-bundle": "~0.1.0",
46
46
  "@osdk/monorepo.tsconfig": "~0.7.0"
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../create-widget.template.react.v2/build/esm/generatedNoCheck/index.js"],"names":[],"mappings":"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","file":"esm-5KIZJMMW.js","sourcesContent":["export const files = new Map([[\"README.md.hbs\", {\n type: \"raw\",\n body: `# {{project}}\n\nThis project was generated with [\\`@osdk/create-widget\\`](https://www.npmjs.com/package/@osdk/create-widget) and demonstrates developing custom widgets to be embedded within Foundry UIs such as Workshop. It uses the Ontology SDK package \\`{{osdkPackage}}\\` with React on top of Vite. Check out the [Vite](https://vitejs.dev/guide/) docs for further configuration. The Vite plugin [\\`@osdk/widget.vite-plugin\\`](https://www.npmjs.com/package/@osdk/widget.vite-plugin) automatically generates a \\`widgets.config.json\\` manifest file containing metadata about widgets inside this project during the build command.\n\n## Developing\n\nRun the following commands (or equivalent with your preferred package manager) to start a local development server and follow the instructions printed to set up developer mode in Foundry:\n\n\\`\\`\\`sh\nexport FOUNDRY_TOKEN=<token>\nnpm run dev\n\\`\\`\\`\n\n> **Note:** A widget no longer needs to be published before you can develop on it. Publishing a widget once (see [Deploying](#deploying)) is still required to use it in Workshop so that it becomes selectable in the **Widget setup** panel.\n\n## Deploying\n\nA \\`foundry.config.json\\` file is included in the root of this project containing the deployment configuration to Foundry.\n\nRun the following commands (or equivalent with your preferred package manager) to create a production build of your widgets:\n\n\\`\\`\\`sh\nexport FOUNDRY_TOKEN=<token>\nnpm run build\n\\`\\`\\`\n\nA \\`.palantir/widgets.config.json\\` manifest file containing metadata about your widgets is created during the build.\n\nRun the following command (or equivalent with your preferred package manager) to deploy the production build of your widgets:\n\n\\`\\`\\`sh\nnpx @osdk/cli@latest widgetset deploy\n\\`\\`\\`\n\nBy default the \\`package-json\\` strategy is used for determining the version for your widgets from the \\`version\\` field in this project's \\`package.json\\` file. Remember to update this field and rerun the build command to update the manifest file when deploying a new version.\n\nIf you prefer to infer the version from a git tag, you can use the \\`git-describe\\` strategy by setting the \\`autoVersion\\` field in the \\`foundry.config.json\\` file to:\n\n\\`\\`\\`json\n{\n \"type\": \"git-describe\",\n \"tagPrefix\": \"\"\n}\n\\`\\`\\`\n`\n}], [\".gitignore\", {\n type: \"raw\",\n body: `# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\npnpm-debug.log*\nlerna-debug.log*\n\nnode_modules\ndist\ndist-ssr\n*.local\n.pnpm-store\n\n# Editor directories and files\n.vscode/*\n!.vscode/extensions.json\n.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 <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <title>Widget: Ontology SDK + React</title>\n </head>\n <body>\n <div id=\"root\"></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 --passWithNoTests\",\n \"preview\": \"vite preview\"\n },\n \"dependencies\": {\n \"{{osdkPackage}}\": \"latest\",\n \"@osdk/client\": \"^2.0.0\",\n \"@osdk/react\": \"^2.0.0\",\n \"@osdk/widget.client-react\": \"^3.26.0\",\n \"@osdk/widget.client\": \"^3.26.0\",\n \"@radix-ui/react-icons\": \"^1.3.2\",\n \"@radix-ui/themes\": \"^3.2.1\",\n \"react\": \"^18\",\n \"react-dom\": \"^18\"\n },\n \"devDependencies\": {\n \"@osdk/widget.vite-plugin\": \"^3.26.0\",\n \"@eslint/compat\": \"^1.3.2\",\n \"@eslint/js\": \"^9.35.0\",\n \"@types/react\": \"^18\",\n \"@types/react-dom\": \"^18\",\n \"@typescript-eslint/eslint-plugin\": \"^8.43.0\",\n \"@typescript-eslint/parser\": \"^8.43.0\",\n \"@vitejs/plugin-react\": \"^4.7.0\",\n \"eslint\": \"^9.35.0\",\n \"eslint-plugin-import\": \"^2.32.0\",\n \"eslint-plugin-jsx-a11y\": \"^6.10.2\",\n \"eslint-plugin-react\": \"^7.37.5\",\n \"eslint-plugin-react-hooks\": \"^5.2.0\",\n \"eslint-plugin-react-refresh\": \"^0.4.20\",\n \"globals\": \"^15.15.0\",\n \"typescript\": \"~5.5.4\",\n \"typescript-eslint\": \"^8.43.0\",\n \"vite\": \"^7.3.1\",\n \"vitest\": \"^3.2.4\"\n }\n}`\n}], [\"src/Widget.tsx.hbs\", {\n type: \"raw\",\n body: `import { \\$Actions, \\$Objects, \\$Queries } from \"{{osdkPackage}}\";\nimport {\n Box,\n Button,\n Checkbox,\n Container,\n Flex,\n Heading,\n Skeleton,\n Table,\n Text,\n TextField,\n Theme,\n} from \"@radix-ui/themes\";\nimport React, { useCallback, useState } from \"react\";\nimport { useWidgetContext } from \"./context.js\";\nimport { useDarkTheme } from \"./useDarkTheme.js\";\n// import { useOsdkClient } from \"@osdk/react\";\n// View the API documentation for your widget set to learn how to use the Ontology SDK.\n\nexport const Widget: React.FC = () => {\n // See Ontology and Platform SDK docs in Developer Console on how to\n // use the client object to access Ontology resources and platform APIs\n // const client = useOsdkClient();\n\n const { parameters, emitEvent } = useWidgetContext();\n const { headerText, todoItems } = parameters.values;\n const [newTodoItem, setNewTodoItem] = useState(\"\");\n\n const handleAddTodoItem = useCallback(() => {\n emitEvent(\"updateTodoItems\", {\n parameterUpdates: {\n todoItems: [...(todoItems ?? []), newTodoItem],\n },\n });\n setNewTodoItem(\"\");\n }, [emitEvent, newTodoItem, todoItems]);\n\n const handleNewTodoItemChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n setNewTodoItem(event.target.value);\n },\n []\n );\n\n const isDarkTheme = useDarkTheme();\n\n const objectApiNames = Object.keys(\\$Objects);\n const actionApiNames = Object.keys(\\$Actions);\n const queryApiNames = Object.keys(\\$Queries);\n\n return (\n <Theme appearance={isDarkTheme ? \"dark\" : \"light\"}>\n <Box p=\"2\">\n <Container size=\"1\">\n <Flex direction=\"column\" gap=\"4\">\n <Flex p=\"5\" direction=\"column\" gap=\"2\">\n <Heading size=\"4\">\n {parameters.state === \"loading\" ||\n parameters.state === \"not-started\" ? (\n <Skeleton>Hello, world!</Skeleton>\n ) : (\n headerText ?? \"{{project}}\"\n )}\n </Heading>\n\n <Table.Root>\n <Table.Header>\n <Table.Row>\n <Table.ColumnHeaderCell>Finished</Table.ColumnHeaderCell>\n <Table.ColumnHeaderCell>Item</Table.ColumnHeaderCell>\n </Table.Row>\n </Table.Header>\n\n <Table.Body>\n {(parameters.state === \"loading\" ||\n parameters.state === \"not-started\") && (\n <>\n <Table.Row>\n <Table.Cell>\n <Skeleton>\n <Checkbox />\n </Skeleton>\n </Table.Cell>\n <Table.Cell>\n <Skeleton>Loading cell</Skeleton>\n </Table.Cell>\n </Table.Row>\n <Table.Row>\n <Table.Cell>\n <Skeleton>\n <Checkbox />\n </Skeleton>\n </Table.Cell>\n <Table.Cell>\n <Skeleton>Loading cell</Skeleton>\n </Table.Cell>\n </Table.Row>\n </>\n )}\n {parameters.state === \"loaded\" &&\n todoItems?.map((item, index) => (\n <Table.Row key={index}>\n <Table.Cell>\n <Checkbox />\n </Table.Cell>\n <Table.Cell>{item}</Table.Cell>\n </Table.Row>\n ))}\n {parameters.state === \"loaded\" &&\n (todoItems ?? []).length === 0 && (\n <Table.Row>\n <Table.Cell colSpan={2}>No items yet</Table.Cell>\n </Table.Row>\n )}\n <Table.Row>\n <Table.Cell colSpan={2}>\n <Flex gap=\"2\">\n <TextField.Root\n value={newTodoItem}\n onChange={handleNewTodoItemChange}\n size=\"2\"\n placeholder=\"Add item…\"\n />\n <Button onClick={handleAddTodoItem}>Add item</Button>\n </Flex>\n </Table.Cell>\n </Table.Row>\n </Table.Body>\n </Table.Root>\n </Flex>\n <Box>\n <Flex direction=\"column\" gap=\"2\">\n <Text>\n Try any of the following methods from your Ontology SDK\n </Text>\n <Flex direction=\"column\" gap=\"1\">\n <Heading size=\"4\">Objects ({objectApiNames.length})</Heading>\n <pre>\n {objectApiNames.map((objectApiName) => (\n <div key={objectApiName}>client({objectApiName})</div>\n ))}\n </pre>\n </Flex>\n <Flex direction=\"column\" gap=\"1\">\n <Heading size=\"4\">Actions ({actionApiNames.length})</Heading>\n <pre>\n {actionApiNames.map((actionApiName) => (\n <div key={actionApiName}>client({actionApiName})</div>\n ))}\n </pre>\n </Flex>\n <Flex direction=\"column\" gap=\"1\">\n <Heading size=\"4\">Queries ({queryApiNames.length})</Heading>\n <pre>\n {queryApiNames.map((queryApiName) => (\n <div key={queryApiName}>client({queryApiName})</div>\n ))}\n </pre>\n </Flex>\n </Flex>\n </Box>\n </Flex>\n </Container>\n </Box>\n </Theme>\n );\n};\n`\n}], [\"src/client.ts.hbs\", {\n type: \"raw\",\n body: `import { \\$ontologyRid } from \"{{osdkPackage}}\";\nimport { createClient } from \"@osdk/client\";\nimport { createFoundryWidgetTokenProvider } from \"@osdk/widget.client\";\n\nexport const client = createClient(\n window.location.origin,\n \\$ontologyRid,\n createFoundryWidgetTokenProvider(),\n);\n`\n}], [\"src/context.ts\", {\n \"type\": \"base64\",\n \"body\": \"aW1wb3J0IHsgdXNlRm91bmRyeVdpZGdldENvbnRleHQgfSBmcm9tICJAb3Nkay93aWRnZXQuY2xpZW50LXJlYWN0IjsKaW1wb3J0IHR5cGUgTWFpbkNvbmZpZyBmcm9tICIuL21haW4uY29uZmlnLmpzIjsKCmV4cG9ydCBjb25zdCB1c2VXaWRnZXRDb250ZXh0ID0gdXNlRm91bmRyeVdpZGdldENvbnRleHQud2l0aFR5cGVzPAogIHR5cGVvZiBNYWluQ29uZmlnCj4oKTsK\"\n}], [\"src/main.config.ts.hbs\", {\n type: \"raw\",\n body: `import { defineConfig } from \"@osdk/widget.client\";\n\n// Updates to the widget configuration in this file require reapplying dev mode\n// to preview the changes. When developing locally, open the setup URL printed\n// in your terminal again. When developing in Code Workspaces, refresh the\n// preview panel.\n\nexport default defineConfig({\n id: \"widgetId\",\n name: \"Custom Widget\",\n description: \"An example custom widget implementation\",\n type: \"workshop\",\n parameters: {\n headerText: {\n displayName: \"Widget title\",\n type: \"string\",\n },\n todoItems: {\n displayName: \"Todo items\",\n type: \"array\",\n subType: \"string\",\n },\n },\n events: {\n updateHeader: {\n displayName: \"Update header\",\n parameterUpdateIds: [\"headerText\"],\n },\n updateTodoItems: {\n displayName: \"Update todo items\",\n parameterUpdateIds: [\"todoItems\"],\n },\n },\n});\n`\n}], [\"src/main.css\", {\n \"type\": \"base64\",\n \"body\": \"aHRtbCwgYm9keSB7CiAgICBtYXJnaW46IDA7Cn0KCi5yYWRpeC10aGVtZXM6d2hlcmUoW2RhdGEtaXMtcm9vdC10aGVtZT0ndHJ1ZSddKSB7CiAgICBtaW4taGVpZ2h0OiAwOwogICAgQHN1cHBvcnRzKG1pbi1oZWlnaHQ6IDEwMGR2aCkgewogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICB9Cn0K\"\n}], [\"src/main.tsx\", {\n type: \"raw\",\n body: `import \"@radix-ui/themes/styles.css\";\nimport \"./main.css\";\n\nimport { OsdkProvider } from \"@osdk/react\";\nimport { FoundryWidget } from \"@osdk/widget.client-react\";\nimport { createRoot } from \"react-dom/client\";\nimport { client } from \"./client.js\";\nimport MainConfig from \"./main.config.js\";\nimport { Widget } from \"./Widget.js\";\n\nconst root = document.getElementById(\"root\")!;\n\ncreateRoot(root).render(\n <FoundryWidget config={MainConfig} client={client}>\n <OsdkProvider client={client}>\n <Widget />\n </OsdkProvider>\n </FoundryWidget>,\n);\n`\n}], [\"src/useDarkTheme.ts\", {\n \"type\": \"base64\",\n \"body\": \"aW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gInJlYWN0IjsKCmV4cG9ydCBjb25zdCB1c2VEYXJrVGhlbWUgPSAoKSA9PiB1c2VNZWRpYVF1ZXJ5KCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIik7Cgpjb25zdCB1c2VNZWRpYVF1ZXJ5ID0gKHF1ZXJ5OiBzdHJpbmcpID0+IHsKICBjb25zdCBbbWF0Y2hlcywgc2V0TWF0Y2hlc10gPSB1c2VTdGF0ZShmYWxzZSk7CgogIGNvbnN0IGhhbmRsZUNoYW5nZSA9IChlOiBNZWRpYVF1ZXJ5TGlzdEV2ZW50KSA9PiBzZXRNYXRjaGVzKGUubWF0Y2hlcyk7CgogIHVzZUVmZmVjdCgoKSA9PiB7CiAgICBjb25zdCBtID0gd2luZG93Lm1hdGNoTWVkaWEocXVlcnkpOwogICAgc2V0TWF0Y2hlcyhtLm1hdGNoZXMpOwogICAgbS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCBoYW5kbGVDaGFuZ2UpOwogICAgcmV0dXJuICgpID0+IHsKICAgICAgbS5yZW1vdmVFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCBoYW5kbGVDaGFuZ2UpOwogICAgfTsKICB9LCBbcXVlcnldKTsKCiAgcmV0dXJuIG1hdGNoZXM7Cn07Cg==\"\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 foundryWidgetPlugin from \"@osdk/widget.vite-plugin\";\nimport react from \"@vitejs/plugin-react\";\nimport { defineConfig } from \"vite\";\n\n// https://vitejs.dev/config/\nexport default defineConfig({\n plugins: [react(), foundryWidgetPlugin()],\n server: {\n port: 8080,\n cors: true,\n },\n build: {\n rollupOptions: {\n input: [\"./index.html\"],\n },\n },\n});\n`\n}]]);"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../create-widget.template.minimal-react.v2/build/esm/generatedNoCheck/index.js"],"names":[],"mappings":"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","file":"esm-W2HHSUQU.js","sourcesContent":["export const files = new Map([[\"README.md.hbs\", {\n type: \"raw\",\n body: `# {{project}}\n\nThis project was generated with [\\`@osdk/create-widget\\`](https://www.npmjs.com/package/@osdk/create-widget) and demonstrates developing custom widgets to be embedded within Foundry UIs such as Workshop. It uses React on top of Vite. Check out the [Vite](https://vitejs.dev/guide/) docs for further configuration. The Vite plugin [\\`@osdk/widget.vite-plugin\\`](https://www.npmjs.com/package/@osdk/widget.vite-plugin) automatically generates a \\`widgets.config.json\\` manifest file containing metadata about widgets inside this project during the build command.\n\n## Developing\n\nRun the following commands (or equivalent with your preferred package manager) to start a local development server and follow the instructions printed to set up developer mode in Foundry:\n\n\\`\\`\\`sh\nexport FOUNDRY_TOKEN=<token>\nnpm run dev\n\\`\\`\\`\n\n> **Note:** A widget no longer needs to be published before you can develop on it. Publishing a widget once (see [Deploying](#deploying)) is still required to use it in Workshop so that it becomes selectable in the **Widget setup** panel.\n\n## Deploying\n\nA \\`foundry.config.json\\` file is included in the root of this project containing the deployment configuration to Foundry.\n\nRun the following commands (or equivalent with your preferred package manager) to create a production build of your widgets:\n\n\\`\\`\\`sh\nexport FOUNDRY_TOKEN=<token>\nnpm run build\n\\`\\`\\`\n\nA \\`.palantir/widgets.config.json\\` manifest file containing metadata about your widgets is created during the build.\n\nRun the following command (or equivalent with your preferred package manager) to deploy the production build of your widgets:\n\n\\`\\`\\`sh\nnpx @osdk/cli@latest widgetset deploy\n\\`\\`\\`\n\nBy default the \\`package-json\\` strategy is used for determining the version for your widgets from the \\`version\\` field in this project's \\`package.json\\` file. Remember to update this field and rerun the build command to update the manifest file when deploying a new version.\n\nIf you prefer to infer the version from a git tag, you can use the \\`git-describe\\` strategy by setting the \\`autoVersion\\` field in the \\`foundry.config.json\\` file to:\n\n\\`\\`\\`json\n{\n \"type\": \"git-describe\",\n \"tagPrefix\": \"\"\n}\n\\`\\`\\`\n`\n}], [\".gitignore\", {\n type: \"raw\",\n body: `# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\npnpm-debug.log*\nlerna-debug.log*\n\nnode_modules\ndist\ndist-ssr\n*.local\n.pnpm-store\n\n# Editor directories and files\n.vscode/*\n!.vscode/extensions.json\n.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 <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <title>Minimal React Custom Widget</title>\n </head>\n <body>\n <div id=\"root\"></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 --passWithNoTests\",\n \"preview\": \"vite preview\"\n },\n \"dependencies\": {\n \"@osdk/react\": \"^2.0.0\",\n \"@osdk/widget.client-react\": \"^3.26.0\",\n \"@osdk/widget.client\": \"^3.26.0\",\n \"@blueprintjs/core\": \"^6.10.0\",\n \"clsx\": \"^2.1.1\",\n \"react\": \"^18\",\n \"react-dom\": \"^18\"\n },\n \"devDependencies\": {\n \"@osdk/widget.vite-plugin\": \"^3.26.0\",\n \"@eslint/compat\": \"^1.3.2\",\n \"@eslint/js\": \"^9.35.0\",\n \"@types/react\": \"^18\",\n \"@types/react-dom\": \"^18\",\n \"@typescript-eslint/eslint-plugin\": \"^8.43.0\",\n \"@typescript-eslint/parser\": \"^8.43.0\",\n \"@vitejs/plugin-react\": \"^4.7.0\",\n \"eslint\": \"^9.35.0\",\n \"eslint-plugin-import\": \"^2.32.0\",\n \"eslint-plugin-jsx-a11y\": \"^6.10.2\",\n \"eslint-plugin-react\": \"^7.37.5\",\n \"eslint-plugin-react-hooks\": \"^5.2.0\",\n \"eslint-plugin-react-refresh\": \"^0.4.20\",\n \"globals\": \"^15.15.0\",\n \"typescript\": \"~5.5.4\",\n \"typescript-eslint\": \"^8.43.0\",\n \"vite\": \"^7.3.1\",\n \"vitest\": \"^3.2.4\"\n }\n}`\n}], [\"src/Widget.module.css\", {\n \"type\": \"base64\",\n \"body\": \"LmNvbnRhaW5lciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13aGl0ZSk7CiAgICBwYWRkaW5nOiAyMHB4OwogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBoZWlnaHQ6IDEwMCU7Cn0KCkBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgIC5jb250YWluZXIgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRhcmstZ3JheTMpOwogICAgfQp9CgouY2FyZCB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDEwcHg7CiAgICB3aWR0aDogMTUwcHg7Cn0K\"\n}], [\"src/Widget.tsx\", {\n type: \"raw\",\n body: `import { Button, Card, Classes, H4 } from \"@blueprintjs/core\";\nimport {\n type FoundryWidgetClientContext,\n useFoundryWidgetContext,\n} from \"@osdk/widget.client-react\";\nimport clsx from \"clsx\";\nimport React, { useCallback, useEffect } from \"react\";\nimport type MainConfig from \"./main.config.js\";\nimport { useDarkTheme } from \"./useDarkTheme.js\";\nimport css from \"./Widget.module.css\";\n\nconst useWidgetContext: () => FoundryWidgetClientContext<typeof MainConfig> =\n useFoundryWidgetContext.withTypes<typeof MainConfig>();\n\nexport const Widget: React.FC = () => {\n const { parameters, emitEvent } = useWidgetContext();\n const greetingName = parameters.values.greetingName ?? \"World\";\n const counterValue = parameters.values.counterValue ?? 0;\n\n const setCounterValue = useCallback(\n (value: number) =>\n emitEvent(\"setCounterValue\", {\n parameterUpdates: { counterValue: value },\n }),\n [emitEvent],\n );\n\n const handleResetCounter = useCallback(() => setCounterValue(0), [\n setCounterValue,\n ]);\n\n useEffect(() => {\n const interval = setInterval(() => setCounterValue(counterValue + 1), 1000);\n return () => clearInterval(interval);\n }, [setCounterValue, counterValue]);\n\n const isDarkTheme = useDarkTheme();\n\n return (\n <div className={clsx(css.container, isDarkTheme && Classes.DARK)}>\n <H4>Hello, {greetingName}!</H4>\n <Card className={css.card} compact={true}>\n <div>Count: {counterValue}</div>\n <Button onClick={handleResetCounter}>Reset</Button>\n </Card>\n </div>\n );\n};\n`\n}], [\"src/main.config.ts\", {\n \"type\": \"base64\",\n \"body\": \"aW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSAiQG9zZGsvd2lkZ2V0LmNsaWVudCI7CgovLyBVcGRhdGVzIHRvIHRoZSB3aWRnZXQgY29uZmlndXJhdGlvbiBpbiB0aGlzIGZpbGUgcmVxdWlyZSByZWFwcGx5aW5nIGRldiBtb2RlCi8vIHRvIHByZXZpZXcgdGhlIGNoYW5nZXMuIFdoZW4gZGV2ZWxvcGluZyBsb2NhbGx5LCBvcGVuIHRoZSBzZXR1cCBVUkwgcHJpbnRlZAovLyBpbiB5b3VyIHRlcm1pbmFsIGFnYWluLiBXaGVuIGRldmVsb3BpbmcgaW4gQ29kZSBXb3Jrc3BhY2VzLCByZWZyZXNoIHRoZQovLyBwcmV2aWV3IHBhbmVsLgoKZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKHsKICBpZDogIndpZGdldElkIiwKICBuYW1lOiAiQ3VzdG9tIFdpZGdldCIsCiAgZGVzY3JpcHRpb246ICJBbiBleGFtcGxlIGN1c3RvbSB3aWRnZXQgaW1wbGVtZW50YXRpb24iLAogIHR5cGU6ICJ3b3Jrc2hvcCIsCiAgcGFyYW1ldGVyczogewogICAgZ3JlZXRpbmdOYW1lOiB7CiAgICAgIGRpc3BsYXlOYW1lOiAiR3JlZXRpbmcgbmFtZSIsCiAgICAgIHR5cGU6ICJzdHJpbmciLAogICAgfSwKICAgIGNvdW50ZXJWYWx1ZTogewogICAgICBkaXNwbGF5TmFtZTogIkNvdW50ZXIgdmFsdWUiLAogICAgICB0eXBlOiAibnVtYmVyIiwKICAgIH0sCiAgfSwKICBldmVudHM6IHsKICAgIHNldENvdW50ZXJWYWx1ZTogewogICAgICBkaXNwbGF5TmFtZTogIlNldCBjb3VudGVyIHZhbHVlIiwKICAgICAgcGFyYW1ldGVyVXBkYXRlSWRzOiBbImNvdW50ZXJWYWx1ZSJdLAogICAgfSwKICB9LAp9KTsK\"\n}], [\"src/main.css\", {\n \"type\": \"base64\",\n \"body\": \"aHRtbCwgYm9keSB7CiAgICBtYXJnaW46IDA7Cn0KCjpyb290IHsKICAgIC0td2hpdGU6ICNmZmZmZmY7CiAgICAtLWRhcmstZ3JheTM6ICMyZjM0M2M7Cn0K\"\n}], [\"src/main.tsx\", {\n type: \"raw\",\n body: `import \"@blueprintjs/core/lib/css/blueprint.css\";\nimport \"./main.css\";\n\nimport { FoundryWidget } from \"@osdk/widget.client-react\";\nimport { createRoot } from \"react-dom/client\";\nimport MainConfig from \"./main.config.js\";\nimport { Widget } from \"./Widget.js\";\n\nconst root = document.getElementById(\"root\")!;\n\ncreateRoot(root).render(\n <FoundryWidget config={MainConfig}>\n <Widget />\n </FoundryWidget>,\n);\n`\n}], [\"src/useDarkTheme.ts\", {\n \"type\": \"base64\",\n \"body\": \"aW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gInJlYWN0IjsKCmV4cG9ydCBjb25zdCB1c2VEYXJrVGhlbWUgPSAoKSA9PiB1c2VNZWRpYVF1ZXJ5KCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIik7Cgpjb25zdCB1c2VNZWRpYVF1ZXJ5ID0gKHF1ZXJ5OiBzdHJpbmcpID0+IHsKICBjb25zdCBbbWF0Y2hlcywgc2V0TWF0Y2hlc10gPSB1c2VTdGF0ZShmYWxzZSk7CgogIGNvbnN0IGhhbmRsZUNoYW5nZSA9IChlOiBNZWRpYVF1ZXJ5TGlzdEV2ZW50KSA9PiBzZXRNYXRjaGVzKGUubWF0Y2hlcyk7CgogIHVzZUVmZmVjdCgoKSA9PiB7CiAgICBjb25zdCBtID0gd2luZG93Lm1hdGNoTWVkaWEocXVlcnkpOwogICAgc2V0TWF0Y2hlcyhtLm1hdGNoZXMpOwogICAgbS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCBoYW5kbGVDaGFuZ2UpOwogICAgcmV0dXJuICgpID0+IHsKICAgICAgbS5yZW1vdmVFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCBoYW5kbGVDaGFuZ2UpOwogICAgfTsKICB9LCBbcXVlcnldKTsKCiAgcmV0dXJuIG1hdGNoZXM7Cn07Cg==\"\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 foundryWidgetPlugin from \"@osdk/widget.vite-plugin\";\nimport react from \"@vitejs/plugin-react\";\nimport { defineConfig } from \"vite\";\n\n// https://vitejs.dev/config/\nexport default defineConfig({\n plugins: [react(), foundryWidgetPlugin()],\n server: {\n port: 8080,\n cors: true,\n },\n build: {\n rollupOptions: {\n input: [\"./index.html\"],\n },\n },\n});\n`\n}]]);"]}