@osdk/widget.vite-plugin 3.4.0-beta.9 → 3.5.0-beta.1

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,39 @@
1
1
  # @osdk/widget.vite-plugin
2
2
 
3
+ ## 3.4.0-beta.14
4
+
5
+ ### Patch Changes
6
+
7
+ - @osdk/widget.api@3.4.0-beta.14
8
+
9
+ ## 3.4.0-beta.13
10
+
11
+ ### Patch Changes
12
+
13
+ - @osdk/widget.api@3.4.0-beta.13
14
+
15
+ ## 3.4.0-beta.12
16
+
17
+ ### Patch Changes
18
+
19
+ - @osdk/widget.api@3.4.0-beta.12
20
+
21
+ ## 3.4.0-beta.11
22
+
23
+ ### Minor Changes
24
+
25
+ - 211cb0d: Add internalDoNotUseMetadata.rid to interfaces
26
+
27
+ ### Patch Changes
28
+
29
+ - @osdk/widget.api@3.4.0-beta.11
30
+
31
+ ## 3.4.0-beta.10
32
+
33
+ ### Patch Changes
34
+
35
+ - @osdk/widget.api@3.4.0-beta.10
36
+
3
37
  ## 3.4.0-beta.9
4
38
 
5
39
  ### Minor Changes
@@ -30,7 +30,7 @@ describe("buildWidgetSetManifest", () => {
30
30
  }
31
31
  };
32
32
  const manifest = buildWidgetSetManifest(WIDGET_SET_RID, WIDGET_SET_VERSION, widgetBuilds, widgetSetInputSpec);
33
- expect(manifest).toMatchObject({
33
+ expect(manifest).toEqual({
34
34
  manifestVersion: "1.0.0",
35
35
  widgetSet: {
36
36
  rid: WIDGET_SET_RID,
@@ -42,7 +42,8 @@ describe("buildWidgetSetManifest", () => {
42
42
  description: "Widget widgetOne Description",
43
43
  type: "workshopWidgetV1",
44
44
  entrypointJs: [{
45
- path: "scripts/widgetOne.js"
45
+ path: "scripts/widgetOne.js",
46
+ type: "module"
46
47
  }],
47
48
  entrypointCss: [{
48
49
  path: "styles/widgetOne.css"
@@ -58,7 +59,8 @@ describe("buildWidgetSetManifest", () => {
58
59
  displayName: "Update Parameters",
59
60
  parameterUpdateIds: ["stringParam"]
60
61
  }
61
- }
62
+ },
63
+ permissions: ["camera"]
62
64
  },
63
65
  widgetTwo: {
64
66
  id: "widgetTwo",
@@ -83,7 +85,8 @@ describe("buildWidgetSetManifest", () => {
83
85
  displayName: "Update Parameters",
84
86
  parameterUpdateIds: ["stringParam"]
85
87
  }
86
- }
88
+ },
89
+ permissions: ["camera"]
87
90
  }
88
91
  },
89
92
  inputSpec: widgetSetInputSpec
@@ -152,7 +155,8 @@ function createMockWidgetBuild(id, parameters = {
152
155
  displayName: "Update Parameters",
153
156
  parameterUpdateIds: ["stringParam"]
154
157
  }
155
- }
158
+ },
159
+ permissions: ["camera"]
156
160
  }
157
161
  };
158
162
  }
@@ -1 +1 @@
1
- {"version":3,"file":"buildWidgetSetManifest.test.js","names":["describe","expect","test","buildWidgetSetManifest","WIDGET_SET_RID","WIDGET_SET_VERSION","widgetBuilds","createMockWidgetBuild","widgetSetInputSpec","discovered","sdks","rid","version","manifest","toMatchObject","manifestVersion","widgetSet","widgets","widgetOne","id","name","description","type","entrypointJs","path","entrypointCss","parameters","stringParam","displayName","events","updateParameters","parameterUpdateIds","widgetTwo","inputSpec","widgetBuild","objectSetParam","objectType","apiName","internalDoNotUseMetadata","widget","toEqual","objectTypeRids","undefined","toBe","scripts","stylesheets","map","src","scriptType","widgetConfig"],"sources":["buildWidgetSetManifest.test.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ParameterDefinition, WidgetSetInputSpec } from \"@osdk/widget.api\";\nimport { describe, expect, test } from \"vitest\";\nimport { buildWidgetSetManifest } from \"../buildWidgetSetManifest.js\";\nimport type { WidgetBuildOutputs } from \"../getWidgetBuildOutputs.js\";\n\ndescribe(\"buildWidgetSetManifest\", () => {\n const WIDGET_SET_RID = \"ri.widgetregistry..widget-set.test-widget-set\";\n const WIDGET_SET_VERSION = \"1.0.0\";\n\n test(\"builds a valid manifest with multiple widgets\", () => {\n const widgetBuilds: WidgetBuildOutputs[] = [\n createMockWidgetBuild(\"widgetOne\"),\n createMockWidgetBuild(\"widgetTwo\"),\n ];\n\n const widgetSetInputSpec: WidgetSetInputSpec = {\n discovered: {\n sdks: [\n {\n rid: \"ri.foundry.main.sdk.test-sdk\",\n version: \"2.0.0\",\n },\n ],\n },\n };\n\n const manifest = buildWidgetSetManifest(\n WIDGET_SET_RID,\n WIDGET_SET_VERSION,\n widgetBuilds,\n widgetSetInputSpec,\n );\n\n expect(manifest).toMatchObject({\n manifestVersion: \"1.0.0\",\n widgetSet: {\n rid: WIDGET_SET_RID,\n version: WIDGET_SET_VERSION,\n widgets: {\n widgetOne: {\n id: \"widgetOne\",\n name: \"Widget widgetOne\",\n description: \"Widget widgetOne Description\",\n type: \"workshopWidgetV1\",\n entrypointJs: [\n { path: \"scripts/widgetOne.js\" },\n ],\n entrypointCss: [\n { path: \"styles/widgetOne.css\" },\n ],\n parameters: {\n stringParam: {\n type: \"string\",\n displayName: \"String Parameter\",\n },\n },\n events: {\n updateParameters: {\n displayName: \"Update Parameters\",\n parameterUpdateIds: [\"stringParam\"],\n },\n },\n },\n widgetTwo: {\n id: \"widgetTwo\",\n name: \"Widget widgetTwo\",\n description: \"Widget widgetTwo Description\",\n type: \"workshopWidgetV1\",\n entrypointJs: [\n { path: \"scripts/widgetTwo.js\", type: \"module\" },\n ],\n entrypointCss: [\n { path: \"styles/widgetTwo.css\" },\n ],\n parameters: {\n stringParam: {\n type: \"string\",\n displayName: \"String Parameter\",\n },\n },\n events: {\n updateParameters: {\n displayName: \"Update Parameters\",\n parameterUpdateIds: [\"stringParam\"],\n },\n },\n },\n },\n inputSpec: widgetSetInputSpec,\n },\n });\n });\n\n test(\"converts object set parameters correctly\", () => {\n const widgetBuild = createMockWidgetBuild(\"widget\", {\n objectSetParam: {\n type: \"objectSet\",\n displayName: \"Object Set Parameter\",\n objectType: {\n type: \"object\",\n apiName: \"employee\",\n internalDoNotUseMetadata: {\n rid: \"ri.ontology.main.object-type.employee\",\n },\n },\n },\n });\n\n const widgetBuilds: WidgetBuildOutputs[] = [widgetBuild];\n const widgetSetInputSpec: WidgetSetInputSpec = {};\n\n const manifest = buildWidgetSetManifest(\n WIDGET_SET_RID,\n WIDGET_SET_VERSION,\n widgetBuilds,\n widgetSetInputSpec,\n );\n\n expect(manifest.widgetSet.widgets.widget.parameters.objectSetParam).toEqual(\n {\n type: \"objectSet\",\n displayName: \"Object Set Parameter\",\n objectTypeRids: [\"ri.ontology.main.object-type.employee\"],\n },\n );\n });\n\n test(\"trims leading slashes from paths\", () => {\n const widgetBuild = createMockWidgetBuild(\n \"widget\",\n undefined,\n [\"/scripts/widget.js\"],\n [\"/styles/widget.css\"],\n );\n\n const widgetBuilds: WidgetBuildOutputs[] = [widgetBuild];\n const widgetSetInputSpec: WidgetSetInputSpec = {};\n\n const manifest = buildWidgetSetManifest(\n WIDGET_SET_RID,\n WIDGET_SET_VERSION,\n widgetBuilds,\n widgetSetInputSpec,\n );\n\n expect(manifest.widgetSet.widgets.widget.entrypointJs[0].path).toBe(\n \"scripts/widget.js\",\n );\n expect(manifest.widgetSet.widgets.widget.entrypointCss![0].path).toBe(\n \"styles/widget.css\",\n );\n });\n\n test(\"handles paths without leading slashes\", () => {\n const widgetBuild = createMockWidgetBuild(\n \"widget\",\n undefined,\n [\"scripts/widget.js\"],\n [\"styles/widget.css\"],\n );\n\n const widgetBuilds: WidgetBuildOutputs[] = [widgetBuild];\n const widgetSetInputSpec: WidgetSetInputSpec = {};\n\n const manifest = buildWidgetSetManifest(\n WIDGET_SET_RID,\n WIDGET_SET_VERSION,\n widgetBuilds,\n widgetSetInputSpec,\n );\n\n expect(manifest.widgetSet.widgets.widget.entrypointJs[0].path).toBe(\n \"scripts/widget.js\",\n );\n expect(manifest.widgetSet.widgets.widget.entrypointCss![0].path).toBe(\n \"styles/widget.css\",\n );\n });\n});\n\nfunction createMockWidgetBuild(\n id: string,\n parameters: Record<string, ParameterDefinition> = {\n stringParam: {\n type: \"string\",\n displayName: \"String Parameter\",\n },\n },\n scripts?: string[],\n stylesheets?: string[],\n): WidgetBuildOutputs {\n return {\n scripts: scripts?.map(src => ({\n type: \"script\" as const,\n scriptType: \"module\" as const,\n src,\n }))\n ?? [\n {\n type: \"script\",\n scriptType: \"module\",\n src: `/scripts/${id}.js`,\n },\n ],\n stylesheets: stylesheets ?? [`/styles/${id}.css`],\n widgetConfig: {\n id,\n name: `Widget ${id}`,\n description: `Widget ${id} Description`,\n type: \"workshop\",\n parameters,\n events: {\n updateParameters: {\n displayName: \"Update Parameters\",\n parameterUpdateIds: [\"stringParam\"],\n },\n },\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"buildWidgetSetManifest.test.js","names":["describe","expect","test","buildWidgetSetManifest","WIDGET_SET_RID","WIDGET_SET_VERSION","widgetBuilds","createMockWidgetBuild","widgetSetInputSpec","discovered","sdks","rid","version","manifest","toEqual","manifestVersion","widgetSet","widgets","widgetOne","id","name","description","type","entrypointJs","path","entrypointCss","parameters","stringParam","displayName","events","updateParameters","parameterUpdateIds","permissions","widgetTwo","inputSpec","widgetBuild","objectSetParam","objectType","apiName","internalDoNotUseMetadata","widget","objectTypeRids","undefined","toBe","scripts","stylesheets","map","src","scriptType","widgetConfig"],"sources":["buildWidgetSetManifest.test.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ParameterDefinition, WidgetSetInputSpec } from \"@osdk/widget.api\";\nimport { describe, expect, test } from \"vitest\";\nimport { buildWidgetSetManifest } from \"../buildWidgetSetManifest.js\";\nimport type { WidgetBuildOutputs } from \"../getWidgetBuildOutputs.js\";\n\ndescribe(\"buildWidgetSetManifest\", () => {\n const WIDGET_SET_RID = \"ri.widgetregistry..widget-set.test-widget-set\";\n const WIDGET_SET_VERSION = \"1.0.0\";\n\n test(\"builds a valid manifest with multiple widgets\", () => {\n const widgetBuilds: WidgetBuildOutputs[] = [\n createMockWidgetBuild(\"widgetOne\"),\n createMockWidgetBuild(\"widgetTwo\"),\n ];\n\n const widgetSetInputSpec: WidgetSetInputSpec = {\n discovered: {\n sdks: [\n {\n rid: \"ri.foundry.main.sdk.test-sdk\",\n version: \"2.0.0\",\n },\n ],\n },\n };\n\n const manifest = buildWidgetSetManifest(\n WIDGET_SET_RID,\n WIDGET_SET_VERSION,\n widgetBuilds,\n widgetSetInputSpec,\n );\n\n expect(manifest).toEqual({\n manifestVersion: \"1.0.0\",\n widgetSet: {\n rid: WIDGET_SET_RID,\n version: WIDGET_SET_VERSION,\n widgets: {\n widgetOne: {\n id: \"widgetOne\",\n name: \"Widget widgetOne\",\n description: \"Widget widgetOne Description\",\n type: \"workshopWidgetV1\",\n entrypointJs: [\n { path: \"scripts/widgetOne.js\", type: \"module\" },\n ],\n entrypointCss: [\n { path: \"styles/widgetOne.css\" },\n ],\n parameters: {\n stringParam: {\n type: \"string\",\n displayName: \"String Parameter\",\n },\n },\n events: {\n updateParameters: {\n displayName: \"Update Parameters\",\n parameterUpdateIds: [\"stringParam\"],\n },\n },\n permissions: [\"camera\"],\n },\n widgetTwo: {\n id: \"widgetTwo\",\n name: \"Widget widgetTwo\",\n description: \"Widget widgetTwo Description\",\n type: \"workshopWidgetV1\",\n entrypointJs: [\n { path: \"scripts/widgetTwo.js\", type: \"module\" },\n ],\n entrypointCss: [\n { path: \"styles/widgetTwo.css\" },\n ],\n parameters: {\n stringParam: {\n type: \"string\",\n displayName: \"String Parameter\",\n },\n },\n events: {\n updateParameters: {\n displayName: \"Update Parameters\",\n parameterUpdateIds: [\"stringParam\"],\n },\n },\n permissions: [\"camera\"],\n },\n },\n inputSpec: widgetSetInputSpec,\n },\n });\n });\n\n test(\"converts object set parameters correctly\", () => {\n const widgetBuild = createMockWidgetBuild(\"widget\", {\n objectSetParam: {\n type: \"objectSet\",\n displayName: \"Object Set Parameter\",\n objectType: {\n type: \"object\",\n apiName: \"employee\",\n internalDoNotUseMetadata: {\n rid: \"ri.ontology.main.object-type.employee\",\n },\n },\n },\n });\n\n const widgetBuilds: WidgetBuildOutputs[] = [widgetBuild];\n const widgetSetInputSpec: WidgetSetInputSpec = {};\n\n const manifest = buildWidgetSetManifest(\n WIDGET_SET_RID,\n WIDGET_SET_VERSION,\n widgetBuilds,\n widgetSetInputSpec,\n );\n\n expect(manifest.widgetSet.widgets.widget.parameters.objectSetParam).toEqual(\n {\n type: \"objectSet\",\n displayName: \"Object Set Parameter\",\n objectTypeRids: [\"ri.ontology.main.object-type.employee\"],\n },\n );\n });\n\n test(\"trims leading slashes from paths\", () => {\n const widgetBuild = createMockWidgetBuild(\n \"widget\",\n undefined,\n [\"/scripts/widget.js\"],\n [\"/styles/widget.css\"],\n );\n\n const widgetBuilds: WidgetBuildOutputs[] = [widgetBuild];\n const widgetSetInputSpec: WidgetSetInputSpec = {};\n\n const manifest = buildWidgetSetManifest(\n WIDGET_SET_RID,\n WIDGET_SET_VERSION,\n widgetBuilds,\n widgetSetInputSpec,\n );\n\n expect(manifest.widgetSet.widgets.widget.entrypointJs[0].path).toBe(\n \"scripts/widget.js\",\n );\n expect(manifest.widgetSet.widgets.widget.entrypointCss![0].path).toBe(\n \"styles/widget.css\",\n );\n });\n\n test(\"handles paths without leading slashes\", () => {\n const widgetBuild = createMockWidgetBuild(\n \"widget\",\n undefined,\n [\"scripts/widget.js\"],\n [\"styles/widget.css\"],\n );\n\n const widgetBuilds: WidgetBuildOutputs[] = [widgetBuild];\n const widgetSetInputSpec: WidgetSetInputSpec = {};\n\n const manifest = buildWidgetSetManifest(\n WIDGET_SET_RID,\n WIDGET_SET_VERSION,\n widgetBuilds,\n widgetSetInputSpec,\n );\n\n expect(manifest.widgetSet.widgets.widget.entrypointJs[0].path).toBe(\n \"scripts/widget.js\",\n );\n expect(manifest.widgetSet.widgets.widget.entrypointCss![0].path).toBe(\n \"styles/widget.css\",\n );\n });\n});\n\nfunction createMockWidgetBuild(\n id: string,\n parameters: Record<string, ParameterDefinition> = {\n stringParam: {\n type: \"string\",\n displayName: \"String Parameter\",\n },\n },\n scripts?: string[],\n stylesheets?: string[],\n): WidgetBuildOutputs {\n return {\n scripts: scripts?.map(src => ({\n type: \"script\" as const,\n scriptType: \"module\" as const,\n src,\n }))\n ?? [\n {\n type: \"script\",\n scriptType: \"module\",\n src: `/scripts/${id}.js`,\n },\n ],\n stylesheets: stylesheets ?? [`/styles/${id}.css`],\n widgetConfig: {\n id,\n name: `Widget ${id}`,\n description: `Widget ${id} Description`,\n type: \"workshop\",\n parameters,\n events: {\n updateParameters: {\n displayName: \"Update Parameters\",\n parameterUpdateIds: [\"stringParam\"],\n },\n },\n permissions: [\"camera\"],\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -42,7 +42,8 @@ function buildWidgetManifest(widgetBuild) {
42
42
  path: trimLeadingSlash(path)
43
43
  })),
44
44
  parameters: convertParameters(widgetConfig.parameters),
45
- events: widgetConfig.events
45
+ events: widgetConfig.events,
46
+ permissions: widgetConfig.permissions
46
47
  };
47
48
  }
48
49
  function convertParameters(parameters) {
@@ -1 +1 @@
1
- {"version":3,"file":"buildWidgetSetManifest.js","names":["validateWidgetSet","buildWidgetSetManifest","widgetSetRid","widgetSetVersion","widgetBuilds","widgetSetInputSpec","manifestVersion","widgetSet","rid","version","widgets","Object","fromEntries","map","buildWidgetManifest","widgetManifest","id","inputSpec","widgetBuild","widgetConfig","name","description","type","entrypointJs","scripts","script","path","trimLeadingSlash","src","scriptType","entrypointCss","stylesheets","parameters","convertParameters","events","entries","key","param","convertParameter","parameter","objectType","internalDoNotUseMetadata","Error","displayName","objectTypeRids","startsWith","slice"],"sources":["buildWidgetSetManifest.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n ManifestParameterDefinition,\n ParameterDefinition,\n WidgetManifestConfig,\n WidgetSetInputSpec,\n WidgetSetManifest,\n} from \"@osdk/widget.api\";\nimport type { WidgetBuildOutputs } from \"./getWidgetBuildOutputs.js\";\nimport { validateWidgetSet } from \"./validateWidgetSet.js\";\n\nexport function buildWidgetSetManifest(\n widgetSetRid: string,\n widgetSetVersion: string,\n widgetBuilds: WidgetBuildOutputs[],\n widgetSetInputSpec: WidgetSetInputSpec,\n): WidgetSetManifest {\n validateWidgetSet(widgetBuilds);\n return {\n manifestVersion: \"1.0.0\",\n widgetSet: {\n rid: widgetSetRid,\n version: widgetSetVersion,\n widgets: Object.fromEntries(\n widgetBuilds\n .map(buildWidgetManifest)\n .map((widgetManifest) => [widgetManifest.id, widgetManifest]),\n ),\n inputSpec: widgetSetInputSpec,\n },\n };\n}\n\nfunction buildWidgetManifest(\n widgetBuild: WidgetBuildOutputs,\n): WidgetManifestConfig {\n const widgetConfig = widgetBuild.widgetConfig;\n return {\n id: widgetConfig.id,\n name: widgetConfig.name,\n description: widgetConfig.description,\n type: \"workshopWidgetV1\",\n entrypointJs: widgetBuild.scripts.map((script) => ({\n path: trimLeadingSlash(script.src),\n type: script.scriptType,\n })),\n entrypointCss: widgetBuild.stylesheets.map((path) => ({\n path: trimLeadingSlash(path),\n })),\n parameters: convertParameters(widgetConfig.parameters),\n events: widgetConfig.events,\n };\n}\n\nfunction convertParameters(\n parameters: Record<string, ParameterDefinition>,\n): Record<string, ManifestParameterDefinition> {\n return Object.fromEntries(\n Object.entries(parameters).map(([key, param]) => [\n key,\n convertParameter(param),\n ]),\n );\n}\n\nfunction convertParameter(\n parameter: ParameterDefinition,\n): ManifestParameterDefinition {\n if (parameter.type === \"objectSet\") {\n // Config has already been validated so rid must be present\n if (parameter.objectType.internalDoNotUseMetadata == null) {\n throw new Error(\"Expected internal metadata to be present\");\n }\n return {\n type: \"objectSet\",\n displayName: parameter.displayName,\n objectTypeRids: [parameter.objectType.internalDoNotUseMetadata.rid],\n };\n }\n return parameter;\n}\n\nfunction trimLeadingSlash(path: string): string {\n return path.startsWith(\"/\") ? path.slice(1) : path;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAUA,SAASA,iBAAiB,QAAQ,wBAAwB;AAE1D,OAAO,SAASC,sBAAsBA,CACpCC,YAAoB,EACpBC,gBAAwB,EACxBC,YAAkC,EAClCC,kBAAsC,EACnB;EACnBL,iBAAiB,CAACI,YAAY,CAAC;EAC/B,OAAO;IACLE,eAAe,EAAE,OAAO;IACxBC,SAAS,EAAE;MACTC,GAAG,EAAEN,YAAY;MACjBO,OAAO,EAAEN,gBAAgB;MACzBO,OAAO,EAAEC,MAAM,CAACC,WAAW,CACzBR,YAAY,CACTS,GAAG,CAACC,mBAAmB,CAAC,CACxBD,GAAG,CAAEE,cAAc,IAAK,CAACA,cAAc,CAACC,EAAE,EAAED,cAAc,CAAC,CAChE,CAAC;MACDE,SAAS,EAAEZ;IACb;EACF,CAAC;AACH;AAEA,SAASS,mBAAmBA,CAC1BI,WAA+B,EACT;EACtB,MAAMC,YAAY,GAAGD,WAAW,CAACC,YAAY;EAC7C,OAAO;IACLH,EAAE,EAAEG,YAAY,CAACH,EAAE;IACnBI,IAAI,EAAED,YAAY,CAACC,IAAI;IACvBC,WAAW,EAAEF,YAAY,CAACE,WAAW;IACrCC,IAAI,EAAE,kBAAkB;IACxBC,YAAY,EAAEL,WAAW,CAACM,OAAO,CAACX,GAAG,CAAEY,MAAM,KAAM;MACjDC,IAAI,EAAEC,gBAAgB,CAACF,MAAM,CAACG,GAAG,CAAC;MAClCN,IAAI,EAAEG,MAAM,CAACI;IACf,CAAC,CAAC,CAAC;IACHC,aAAa,EAAEZ,WAAW,CAACa,WAAW,CAAClB,GAAG,CAAEa,IAAI,KAAM;MACpDA,IAAI,EAAEC,gBAAgB,CAACD,IAAI;IAC7B,CAAC,CAAC,CAAC;IACHM,UAAU,EAAEC,iBAAiB,CAACd,YAAY,CAACa,UAAU,CAAC;IACtDE,MAAM,EAAEf,YAAY,CAACe;EACvB,CAAC;AACH;AAEA,SAASD,iBAAiBA,CACxBD,UAA+C,EACF;EAC7C,OAAOrB,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACwB,OAAO,CAACH,UAAU,CAAC,CAACnB,GAAG,CAAC,CAAC,CAACuB,GAAG,EAAEC,KAAK,CAAC,KAAK,CAC/CD,GAAG,EACHE,gBAAgB,CAACD,KAAK,CAAC,CACxB,CACH,CAAC;AACH;AAEA,SAASC,gBAAgBA,CACvBC,SAA8B,EACD;EAC7B,IAAIA,SAAS,CAACjB,IAAI,KAAK,WAAW,EAAE;IAClC;IACA,IAAIiB,SAAS,CAACC,UAAU,CAACC,wBAAwB,IAAI,IAAI,EAAE;MACzD,MAAM,IAAIC,KAAK,CAAC,0CAA0C,CAAC;IAC7D;IACA,OAAO;MACLpB,IAAI,EAAE,WAAW;MACjBqB,WAAW,EAAEJ,SAAS,CAACI,WAAW;MAClCC,cAAc,EAAE,CAACL,SAAS,CAACC,UAAU,CAACC,wBAAwB,CAACjC,GAAG;IACpE,CAAC;EACH;EACA,OAAO+B,SAAS;AAClB;AAEA,SAASZ,gBAAgBA,CAACD,IAAY,EAAU;EAC9C,OAAOA,IAAI,CAACmB,UAAU,CAAC,GAAG,CAAC,GAAGnB,IAAI,CAACoB,KAAK,CAAC,CAAC,CAAC,GAAGpB,IAAI;AACpD","ignoreList":[]}
1
+ {"version":3,"file":"buildWidgetSetManifest.js","names":["validateWidgetSet","buildWidgetSetManifest","widgetSetRid","widgetSetVersion","widgetBuilds","widgetSetInputSpec","manifestVersion","widgetSet","rid","version","widgets","Object","fromEntries","map","buildWidgetManifest","widgetManifest","id","inputSpec","widgetBuild","widgetConfig","name","description","type","entrypointJs","scripts","script","path","trimLeadingSlash","src","scriptType","entrypointCss","stylesheets","parameters","convertParameters","events","permissions","entries","key","param","convertParameter","parameter","objectType","internalDoNotUseMetadata","Error","displayName","objectTypeRids","startsWith","slice"],"sources":["buildWidgetSetManifest.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n ManifestParameterDefinition,\n ParameterDefinition,\n WidgetManifestConfig,\n WidgetSetInputSpec,\n WidgetSetManifest,\n} from \"@osdk/widget.api\";\nimport type { WidgetBuildOutputs } from \"./getWidgetBuildOutputs.js\";\nimport { validateWidgetSet } from \"./validateWidgetSet.js\";\n\nexport function buildWidgetSetManifest(\n widgetSetRid: string,\n widgetSetVersion: string,\n widgetBuilds: WidgetBuildOutputs[],\n widgetSetInputSpec: WidgetSetInputSpec,\n): WidgetSetManifest {\n validateWidgetSet(widgetBuilds);\n return {\n manifestVersion: \"1.0.0\",\n widgetSet: {\n rid: widgetSetRid,\n version: widgetSetVersion,\n widgets: Object.fromEntries(\n widgetBuilds\n .map(buildWidgetManifest)\n .map((widgetManifest) => [widgetManifest.id, widgetManifest]),\n ),\n inputSpec: widgetSetInputSpec,\n },\n };\n}\n\nfunction buildWidgetManifest(\n widgetBuild: WidgetBuildOutputs,\n): WidgetManifestConfig {\n const widgetConfig = widgetBuild.widgetConfig;\n return {\n id: widgetConfig.id,\n name: widgetConfig.name,\n description: widgetConfig.description,\n type: \"workshopWidgetV1\",\n entrypointJs: widgetBuild.scripts.map((script) => ({\n path: trimLeadingSlash(script.src),\n type: script.scriptType,\n })),\n entrypointCss: widgetBuild.stylesheets.map((path) => ({\n path: trimLeadingSlash(path),\n })),\n parameters: convertParameters(widgetConfig.parameters),\n events: widgetConfig.events,\n permissions: widgetConfig.permissions,\n };\n}\n\nfunction convertParameters(\n parameters: Record<string, ParameterDefinition>,\n): Record<string, ManifestParameterDefinition> {\n return Object.fromEntries(\n Object.entries(parameters).map(([key, param]) => [\n key,\n convertParameter(param),\n ]),\n );\n}\n\nfunction convertParameter(\n parameter: ParameterDefinition,\n): ManifestParameterDefinition {\n if (parameter.type === \"objectSet\") {\n // Config has already been validated so rid must be present\n if (parameter.objectType.internalDoNotUseMetadata == null) {\n throw new Error(\"Expected internal metadata to be present\");\n }\n return {\n type: \"objectSet\",\n displayName: parameter.displayName,\n objectTypeRids: [parameter.objectType.internalDoNotUseMetadata.rid],\n };\n }\n return parameter;\n}\n\nfunction trimLeadingSlash(path: string): string {\n return path.startsWith(\"/\") ? path.slice(1) : path;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAUA,SAASA,iBAAiB,QAAQ,wBAAwB;AAE1D,OAAO,SAASC,sBAAsBA,CACpCC,YAAoB,EACpBC,gBAAwB,EACxBC,YAAkC,EAClCC,kBAAsC,EACnB;EACnBL,iBAAiB,CAACI,YAAY,CAAC;EAC/B,OAAO;IACLE,eAAe,EAAE,OAAO;IACxBC,SAAS,EAAE;MACTC,GAAG,EAAEN,YAAY;MACjBO,OAAO,EAAEN,gBAAgB;MACzBO,OAAO,EAAEC,MAAM,CAACC,WAAW,CACzBR,YAAY,CACTS,GAAG,CAACC,mBAAmB,CAAC,CACxBD,GAAG,CAAEE,cAAc,IAAK,CAACA,cAAc,CAACC,EAAE,EAAED,cAAc,CAAC,CAChE,CAAC;MACDE,SAAS,EAAEZ;IACb;EACF,CAAC;AACH;AAEA,SAASS,mBAAmBA,CAC1BI,WAA+B,EACT;EACtB,MAAMC,YAAY,GAAGD,WAAW,CAACC,YAAY;EAC7C,OAAO;IACLH,EAAE,EAAEG,YAAY,CAACH,EAAE;IACnBI,IAAI,EAAED,YAAY,CAACC,IAAI;IACvBC,WAAW,EAAEF,YAAY,CAACE,WAAW;IACrCC,IAAI,EAAE,kBAAkB;IACxBC,YAAY,EAAEL,WAAW,CAACM,OAAO,CAACX,GAAG,CAAEY,MAAM,KAAM;MACjDC,IAAI,EAAEC,gBAAgB,CAACF,MAAM,CAACG,GAAG,CAAC;MAClCN,IAAI,EAAEG,MAAM,CAACI;IACf,CAAC,CAAC,CAAC;IACHC,aAAa,EAAEZ,WAAW,CAACa,WAAW,CAAClB,GAAG,CAAEa,IAAI,KAAM;MACpDA,IAAI,EAAEC,gBAAgB,CAACD,IAAI;IAC7B,CAAC,CAAC,CAAC;IACHM,UAAU,EAAEC,iBAAiB,CAACd,YAAY,CAACa,UAAU,CAAC;IACtDE,MAAM,EAAEf,YAAY,CAACe,MAAM;IAC3BC,WAAW,EAAEhB,YAAY,CAACgB;EAC5B,CAAC;AACH;AAEA,SAASF,iBAAiBA,CACxBD,UAA+C,EACF;EAC7C,OAAOrB,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACyB,OAAO,CAACJ,UAAU,CAAC,CAACnB,GAAG,CAAC,CAAC,CAACwB,GAAG,EAAEC,KAAK,CAAC,KAAK,CAC/CD,GAAG,EACHE,gBAAgB,CAACD,KAAK,CAAC,CACxB,CACH,CAAC;AACH;AAEA,SAASC,gBAAgBA,CACvBC,SAA8B,EACD;EAC7B,IAAIA,SAAS,CAAClB,IAAI,KAAK,WAAW,EAAE;IAClC;IACA,IAAIkB,SAAS,CAACC,UAAU,CAACC,wBAAwB,IAAI,IAAI,EAAE;MACzD,MAAM,IAAIC,KAAK,CAAC,0CAA0C,CAAC;IAC7D;IACA,OAAO;MACLrB,IAAI,EAAE,WAAW;MACjBsB,WAAW,EAAEJ,SAAS,CAACI,WAAW;MAClCC,cAAc,EAAE,CAACL,SAAS,CAACC,UAAU,CAACC,wBAAwB,CAAClC,GAAG;IACpE,CAAC;EACH;EACA,OAAOgC,SAAS;AAClB;AAEA,SAASb,gBAAgBA,CAACD,IAAY,EAAU;EAC9C,OAAOA,IAAI,CAACoB,UAAU,CAAC,GAAG,CAAC,GAAGpB,IAAI,CAACqB,KAAK,CAAC,CAAC,CAAC,GAAGrB,IAAI;AACpD","ignoreList":[]}
@@ -0,0 +1,44 @@
1
+ .body {
2
+ align-items: center;
3
+ display: flex;
4
+ height: 100%;
5
+ }
6
+
7
+ body,
8
+ html {
9
+ height: 100%;
10
+ }
11
+
12
+ iframe {
13
+ display: none;
14
+ }
15
+
16
+ .description {
17
+ display: flex;
18
+ align-items: center;
19
+ gap: 5px;
20
+ }
21
+
22
+ .response-block {
23
+ text-align: left;
24
+ overflow-x: auto;
25
+ white-space: pre-wrap;
26
+ word-wrap: break-word;
27
+ }
28
+
29
+ .hint-block {
30
+ text-align: left;
31
+ overflow-x: auto;
32
+ white-space: pre-wrap;
33
+ word-wrap: normal;
34
+ background-color: #fef3cd;
35
+ border: 1px solid #ffc107;
36
+ border-radius: 4px;
37
+ padding: 12px;
38
+ margin-bottom: 16px;
39
+ color: #856404;
40
+ }
41
+
42
+ .bp5-non-ideal-state > * {
43
+ max-width: min(100%, 800px);
44
+ }
@@ -110,7 +110,7 @@ describe("validateWidgetConfig", () => {
110
110
  apiName: "employee"
111
111
  }
112
112
  };
113
- expect(() => validateWidgetConfig(invalidConfig)).toThrow("ObjectSet parameter \"myObjectSet\" must have a valid rid in its metadata, make sure your OSDK was generated with a generator version >=2.5.0");
113
+ expect(() => validateWidgetConfig(invalidConfig)).toThrow("ObjectSet parameter \"myObjectSet\" must have a valid rid in its metadata, make sure your OSDK was generated with a generator version >=2.6.2");
114
114
  });
115
115
  });
116
116
  function getValidConfig() {
@@ -1 +1 @@
1
- {"version":3,"file":"validateWidgetConfig.test.js","names":["describe","expect","test","validateWidgetConfig","validConfig","getValidConfig","not","toThrow","invalidConfig","id","repeat","testCases","message","name","description","parameters","displayName","type","longParamId","myObjectSet","objectType","apiName","internalDoNotUseMetadata","rid","paramOne","events","updateParameters","parameterUpdateIds"],"sources":["validateWidgetConfig.test.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ParameterConfig, WidgetConfig } from \"@osdk/widget.api\";\nimport { describe, expect, test } from \"vitest\";\nimport { validateWidgetConfig } from \"../validateWidgetConfig.js\";\n\ndescribe(\"validateWidgetConfig\", () => {\n test(\"accepts valid widget configuration\", () => {\n const validConfig = getValidConfig();\n expect(() => validateWidgetConfig(validConfig)).not.toThrow();\n });\n\n test(\"throws for widget id that exceeds max length\", () => {\n const invalidConfig = getValidConfig();\n invalidConfig.id = \"a\".repeat(101);\n\n expect(() => validateWidgetConfig(invalidConfig)).toThrow(\n \"Widget id length can be at most 100 characters\",\n );\n });\n\n test(\"throws for widget id that is not camelCase\", () => {\n const testCases = [\n { id: \"TestWidget\", message: \"does not match allowed pattern\" },\n { id: \"test-widget\", message: \"does not match allowed pattern\" },\n { id: \"test_widget\", message: \"does not match allowed pattern\" },\n { id: \"1testWidget\", message: \"does not match allowed pattern\" },\n ];\n\n for (const { id, message } of testCases) {\n const invalidConfig = getValidConfig();\n invalidConfig.id = id;\n expect(() => validateWidgetConfig(invalidConfig)).toThrow(message);\n }\n });\n\n test(\"throws for widget name that exceeds max length\", () => {\n const invalidConfig = getValidConfig();\n invalidConfig.name = \"A\".repeat(101);\n\n expect(() => validateWidgetConfig(invalidConfig)).toThrow(\n \"Widget name length can be at most 100 characters\",\n );\n });\n\n test(\"throws for widget description that exceeds max length\", () => {\n const invalidConfig = getValidConfig();\n invalidConfig.description = \"A\".repeat(251);\n\n expect(() => validateWidgetConfig(invalidConfig)).toThrow(\n \"Widget description length can be at most 250 characters\",\n );\n });\n\n test(\"accepts undefined widget description\", () => {\n const validConfig = getValidConfig();\n delete validConfig.description;\n\n expect(() => validateWidgetConfig(validConfig)).not.toThrow();\n });\n\n test(\"throws for parameter id that is not camelCase\", () => {\n const invalidConfig = getValidConfig();\n invalidConfig.parameters = {\n \"Invalid-Param\": {\n displayName: \"Invalid Parameter\",\n type: \"string\",\n },\n };\n\n expect(() => validateWidgetConfig(invalidConfig)).toThrow(\n \"Parameter id \\\"Invalid-Param\\\" does not match allowed pattern (must be camelCase)\",\n );\n });\n\n test(\"throws for parameter id that exceeds max length\", () => {\n const invalidConfig = getValidConfig();\n const longParamId = \"param\" + \"a\".repeat(96); // 101 chars total\n invalidConfig.parameters = {\n [longParamId]: {\n displayName: \"Long Parameter\",\n type: \"string\",\n },\n };\n\n expect(() => validateWidgetConfig(invalidConfig)).toThrow(\n \"Parameter id length can be at most 100 characters\",\n );\n });\n\n test(\"accepts valid object set parameter\", () => {\n const validConfig = getValidConfig();\n validConfig.parameters.myObjectSet = {\n type: \"objectSet\",\n displayName: \"My Object Set\",\n objectType: {\n type: \"object\",\n apiName: \"employee\",\n internalDoNotUseMetadata: {\n rid: \"ri.object-type.employee\",\n },\n },\n };\n expect(() => validateWidgetConfig(validConfig)).not.toThrow();\n });\n\n test(\"throws for invalid object set parameter\", () => {\n const invalidConfig = getValidConfig();\n invalidConfig.parameters.myObjectSet = {\n type: \"objectSet\",\n displayName: \"My Object Set\",\n objectType: {\n type: \"object\",\n apiName: \"employee\",\n },\n };\n expect(() => validateWidgetConfig(invalidConfig)).toThrow(\n \"ObjectSet parameter \\\"myObjectSet\\\" must have a valid rid in its metadata, make sure your OSDK was generated with a generator version >=2.5.0\",\n );\n });\n});\n\nfunction getValidConfig(): WidgetConfig<ParameterConfig> {\n return {\n id: \"testWidget\",\n name: \"Test Widget\",\n description: \"A test widget\",\n type: \"workshop\",\n parameters: {\n paramOne: {\n displayName: \"Parameter One\",\n type: \"string\",\n },\n },\n events: {\n updateParameters: {\n displayName: \"Update Parameters\",\n parameterUpdateIds: [\"paramOne\"],\n },\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"validateWidgetConfig.test.js","names":["describe","expect","test","validateWidgetConfig","validConfig","getValidConfig","not","toThrow","invalidConfig","id","repeat","testCases","message","name","description","parameters","displayName","type","longParamId","myObjectSet","objectType","apiName","internalDoNotUseMetadata","rid","paramOne","events","updateParameters","parameterUpdateIds"],"sources":["validateWidgetConfig.test.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ParameterConfig, WidgetConfig } from \"@osdk/widget.api\";\nimport { describe, expect, test } from \"vitest\";\nimport { validateWidgetConfig } from \"../validateWidgetConfig.js\";\n\ndescribe(\"validateWidgetConfig\", () => {\n test(\"accepts valid widget configuration\", () => {\n const validConfig = getValidConfig();\n expect(() => validateWidgetConfig(validConfig)).not.toThrow();\n });\n\n test(\"throws for widget id that exceeds max length\", () => {\n const invalidConfig = getValidConfig();\n invalidConfig.id = \"a\".repeat(101);\n\n expect(() => validateWidgetConfig(invalidConfig)).toThrow(\n \"Widget id length can be at most 100 characters\",\n );\n });\n\n test(\"throws for widget id that is not camelCase\", () => {\n const testCases = [\n { id: \"TestWidget\", message: \"does not match allowed pattern\" },\n { id: \"test-widget\", message: \"does not match allowed pattern\" },\n { id: \"test_widget\", message: \"does not match allowed pattern\" },\n { id: \"1testWidget\", message: \"does not match allowed pattern\" },\n ];\n\n for (const { id, message } of testCases) {\n const invalidConfig = getValidConfig();\n invalidConfig.id = id;\n expect(() => validateWidgetConfig(invalidConfig)).toThrow(message);\n }\n });\n\n test(\"throws for widget name that exceeds max length\", () => {\n const invalidConfig = getValidConfig();\n invalidConfig.name = \"A\".repeat(101);\n\n expect(() => validateWidgetConfig(invalidConfig)).toThrow(\n \"Widget name length can be at most 100 characters\",\n );\n });\n\n test(\"throws for widget description that exceeds max length\", () => {\n const invalidConfig = getValidConfig();\n invalidConfig.description = \"A\".repeat(251);\n\n expect(() => validateWidgetConfig(invalidConfig)).toThrow(\n \"Widget description length can be at most 250 characters\",\n );\n });\n\n test(\"accepts undefined widget description\", () => {\n const validConfig = getValidConfig();\n delete validConfig.description;\n\n expect(() => validateWidgetConfig(validConfig)).not.toThrow();\n });\n\n test(\"throws for parameter id that is not camelCase\", () => {\n const invalidConfig = getValidConfig();\n invalidConfig.parameters = {\n \"Invalid-Param\": {\n displayName: \"Invalid Parameter\",\n type: \"string\",\n },\n };\n\n expect(() => validateWidgetConfig(invalidConfig)).toThrow(\n \"Parameter id \\\"Invalid-Param\\\" does not match allowed pattern (must be camelCase)\",\n );\n });\n\n test(\"throws for parameter id that exceeds max length\", () => {\n const invalidConfig = getValidConfig();\n const longParamId = \"param\" + \"a\".repeat(96); // 101 chars total\n invalidConfig.parameters = {\n [longParamId]: {\n displayName: \"Long Parameter\",\n type: \"string\",\n },\n };\n\n expect(() => validateWidgetConfig(invalidConfig)).toThrow(\n \"Parameter id length can be at most 100 characters\",\n );\n });\n\n test(\"accepts valid object set parameter\", () => {\n const validConfig = getValidConfig();\n validConfig.parameters.myObjectSet = {\n type: \"objectSet\",\n displayName: \"My Object Set\",\n objectType: {\n type: \"object\",\n apiName: \"employee\",\n internalDoNotUseMetadata: {\n rid: \"ri.object-type.employee\",\n },\n },\n };\n expect(() => validateWidgetConfig(validConfig)).not.toThrow();\n });\n\n test(\"throws for invalid object set parameter\", () => {\n const invalidConfig = getValidConfig();\n invalidConfig.parameters.myObjectSet = {\n type: \"objectSet\",\n displayName: \"My Object Set\",\n objectType: {\n type: \"object\",\n apiName: \"employee\",\n },\n };\n expect(() => validateWidgetConfig(invalidConfig)).toThrow(\n \"ObjectSet parameter \\\"myObjectSet\\\" must have a valid rid in its metadata, make sure your OSDK was generated with a generator version >=2.6.2\",\n );\n });\n});\n\nfunction getValidConfig(): WidgetConfig<ParameterConfig> {\n return {\n id: \"testWidget\",\n name: \"Test Widget\",\n description: \"A test widget\",\n type: \"workshop\",\n parameters: {\n paramOne: {\n displayName: \"Parameter One\",\n type: \"string\",\n },\n },\n events: {\n updateParameters: {\n displayName: \"Update Parameters\",\n parameterUpdateIds: [\"paramOne\"],\n },\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -57,7 +57,7 @@ function validateWidgetParameters(parameters) {
57
57
  }
58
58
  if (parameterConfig.type === "objectSet") {
59
59
  if (typeof parameterConfig.objectType.internalDoNotUseMetadata?.rid !== "string") {
60
- throw new Error(`ObjectSet parameter "${parameterId}" must have a valid rid in its metadata, make sure your OSDK was generated with a generator version >=2.5.0. Provided type: '${JSON.stringify(parameterConfig.objectType)}'`);
60
+ throw new Error(`ObjectSet parameter "${parameterId}" must have a valid rid in its metadata, make sure your OSDK was generated with a generator version >=2.6.2. Provided type: '${JSON.stringify(parameterConfig.objectType)}'`);
61
61
  }
62
62
  }
63
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validateWidgetConfig.js","names":["ID_PATTERN","ID_MAX_LENGTH","NAME_MAX_LENGTH","DESCRIPTION_MAX_LENGTH","validateWidgetConfig","config","validateWidgetId","id","validateWidgetName","name","validateWidgetDescription","description","validateWidgetParameters","parameters","length","Error","test","parameterId","parameterConfig","Object","entries","type","objectType","internalDoNotUseMetadata","rid","JSON","stringify"],"sources":["validateWidgetConfig.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ParameterConfig, WidgetConfig } from \"@osdk/widget.api\";\n\nconst ID_PATTERN = /^([a-z][a-z0-9]*)([A-Z][a-z0-9]*)*$/;\nconst ID_MAX_LENGTH = 100;\nconst NAME_MAX_LENGTH = 100;\nconst DESCRIPTION_MAX_LENGTH = 250;\n\n/**\n * Validates the requirements that can't be expressed via TypeScript type-checking\n * for a widget config (e.g. that widget IDs and parameter IDs are camelCase.)\n */\nexport function validateWidgetConfig(\n config: WidgetConfig<ParameterConfig>,\n): void {\n validateWidgetId(config.id);\n validateWidgetName(config.name);\n validateWidgetDescription(config.description);\n validateWidgetParameters(config.parameters);\n}\n\nfunction validateWidgetId(id: string): void {\n if (id.length > ID_MAX_LENGTH) {\n throw new Error(\n `Widget id length can be at most ${ID_MAX_LENGTH} characters`,\n );\n }\n if (!ID_PATTERN.test(id)) {\n throw new Error(\n `Widget id \"${id}\" does not match allowed pattern (must be camelCase)`,\n );\n }\n}\n\nfunction validateWidgetName(name: string): void {\n if (name.length > NAME_MAX_LENGTH) {\n throw new Error(\n `Widget name length can be at most ${NAME_MAX_LENGTH} characters`,\n );\n }\n}\n\nfunction validateWidgetDescription(description?: string): void {\n if (description != null && description.length > DESCRIPTION_MAX_LENGTH) {\n throw new Error(\n `Widget description length can be at most ${DESCRIPTION_MAX_LENGTH} characters`,\n );\n }\n}\n\nfunction validateWidgetParameters(parameters: ParameterConfig): void {\n for (const [parameterId, parameterConfig] of Object.entries(parameters)) {\n if (parameterId.length > ID_MAX_LENGTH) {\n throw new Error(\n `Parameter id length can be at most ${ID_MAX_LENGTH} characters`,\n );\n }\n if (!ID_PATTERN.test(parameterId)) {\n throw new Error(\n `Parameter id \"${parameterId}\" does not match allowed pattern (must be camelCase)`,\n );\n }\n if (parameterConfig.type === \"objectSet\") {\n if (\n typeof parameterConfig.objectType.internalDoNotUseMetadata?.rid\n !== \"string\"\n ) {\n throw new Error(\n `ObjectSet parameter \"${parameterId}\" must have a valid rid in its metadata, make sure your OSDK was generated with a generator version >=2.5.0. Provided type: '${\n JSON.stringify(parameterConfig.objectType)\n }'`,\n );\n }\n }\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,MAAMA,UAAU,GAAG,qCAAqC;AACxD,MAAMC,aAAa,GAAG,GAAG;AACzB,MAAMC,eAAe,GAAG,GAAG;AAC3B,MAAMC,sBAAsB,GAAG,GAAG;;AAElC;AACA;AACA;AACA;AACA,OAAO,SAASC,oBAAoBA,CAClCC,MAAqC,EAC/B;EACNC,gBAAgB,CAACD,MAAM,CAACE,EAAE,CAAC;EAC3BC,kBAAkB,CAACH,MAAM,CAACI,IAAI,CAAC;EAC/BC,yBAAyB,CAACL,MAAM,CAACM,WAAW,CAAC;EAC7CC,wBAAwB,CAACP,MAAM,CAACQ,UAAU,CAAC;AAC7C;AAEA,SAASP,gBAAgBA,CAACC,EAAU,EAAQ;EAC1C,IAAIA,EAAE,CAACO,MAAM,GAAGb,aAAa,EAAE;IAC7B,MAAM,IAAIc,KAAK,CACb,mCAAmCd,aAAa,aAClD,CAAC;EACH;EACA,IAAI,CAACD,UAAU,CAACgB,IAAI,CAACT,EAAE,CAAC,EAAE;IACxB,MAAM,IAAIQ,KAAK,CACb,cAAcR,EAAE,sDAClB,CAAC;EACH;AACF;AAEA,SAASC,kBAAkBA,CAACC,IAAY,EAAQ;EAC9C,IAAIA,IAAI,CAACK,MAAM,GAAGZ,eAAe,EAAE;IACjC,MAAM,IAAIa,KAAK,CACb,qCAAqCb,eAAe,aACtD,CAAC;EACH;AACF;AAEA,SAASQ,yBAAyBA,CAACC,WAAoB,EAAQ;EAC7D,IAAIA,WAAW,IAAI,IAAI,IAAIA,WAAW,CAACG,MAAM,GAAGX,sBAAsB,EAAE;IACtE,MAAM,IAAIY,KAAK,CACb,4CAA4CZ,sBAAsB,aACpE,CAAC;EACH;AACF;AAEA,SAASS,wBAAwBA,CAACC,UAA2B,EAAQ;EACnE,KAAK,MAAM,CAACI,WAAW,EAAEC,eAAe,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACP,UAAU,CAAC,EAAE;IACvE,IAAII,WAAW,CAACH,MAAM,GAAGb,aAAa,EAAE;MACtC,MAAM,IAAIc,KAAK,CACb,sCAAsCd,aAAa,aACrD,CAAC;IACH;IACA,IAAI,CAACD,UAAU,CAACgB,IAAI,CAACC,WAAW,CAAC,EAAE;MACjC,MAAM,IAAIF,KAAK,CACb,iBAAiBE,WAAW,sDAC9B,CAAC;IACH;IACA,IAAIC,eAAe,CAACG,IAAI,KAAK,WAAW,EAAE;MACxC,IACE,OAAOH,eAAe,CAACI,UAAU,CAACC,wBAAwB,EAAEC,GAAG,KACzD,QAAQ,EACd;QACA,MAAM,IAAIT,KAAK,CACb,wBAAwBE,WAAW,gIACjCQ,IAAI,CAACC,SAAS,CAACR,eAAe,CAACI,UAAU,CAAC,GAE9C,CAAC;MACH;IACF;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"file":"validateWidgetConfig.js","names":["ID_PATTERN","ID_MAX_LENGTH","NAME_MAX_LENGTH","DESCRIPTION_MAX_LENGTH","validateWidgetConfig","config","validateWidgetId","id","validateWidgetName","name","validateWidgetDescription","description","validateWidgetParameters","parameters","length","Error","test","parameterId","parameterConfig","Object","entries","type","objectType","internalDoNotUseMetadata","rid","JSON","stringify"],"sources":["validateWidgetConfig.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ParameterConfig, WidgetConfig } from \"@osdk/widget.api\";\n\nconst ID_PATTERN = /^([a-z][a-z0-9]*)([A-Z][a-z0-9]*)*$/;\nconst ID_MAX_LENGTH = 100;\nconst NAME_MAX_LENGTH = 100;\nconst DESCRIPTION_MAX_LENGTH = 250;\n\n/**\n * Validates the requirements that can't be expressed via TypeScript type-checking\n * for a widget config (e.g. that widget IDs and parameter IDs are camelCase.)\n */\nexport function validateWidgetConfig(\n config: WidgetConfig<ParameterConfig>,\n): void {\n validateWidgetId(config.id);\n validateWidgetName(config.name);\n validateWidgetDescription(config.description);\n validateWidgetParameters(config.parameters);\n}\n\nfunction validateWidgetId(id: string): void {\n if (id.length > ID_MAX_LENGTH) {\n throw new Error(\n `Widget id length can be at most ${ID_MAX_LENGTH} characters`,\n );\n }\n if (!ID_PATTERN.test(id)) {\n throw new Error(\n `Widget id \"${id}\" does not match allowed pattern (must be camelCase)`,\n );\n }\n}\n\nfunction validateWidgetName(name: string): void {\n if (name.length > NAME_MAX_LENGTH) {\n throw new Error(\n `Widget name length can be at most ${NAME_MAX_LENGTH} characters`,\n );\n }\n}\n\nfunction validateWidgetDescription(description?: string): void {\n if (description != null && description.length > DESCRIPTION_MAX_LENGTH) {\n throw new Error(\n `Widget description length can be at most ${DESCRIPTION_MAX_LENGTH} characters`,\n );\n }\n}\n\nfunction validateWidgetParameters(parameters: ParameterConfig): void {\n for (const [parameterId, parameterConfig] of Object.entries(parameters)) {\n if (parameterId.length > ID_MAX_LENGTH) {\n throw new Error(\n `Parameter id length can be at most ${ID_MAX_LENGTH} characters`,\n );\n }\n if (!ID_PATTERN.test(parameterId)) {\n throw new Error(\n `Parameter id \"${parameterId}\" does not match allowed pattern (must be camelCase)`,\n );\n }\n if (parameterConfig.type === \"objectSet\") {\n if (\n typeof parameterConfig.objectType.internalDoNotUseMetadata?.rid\n !== \"string\"\n ) {\n throw new Error(\n `ObjectSet parameter \"${parameterId}\" must have a valid rid in its metadata, make sure your OSDK was generated with a generator version >=2.6.2. Provided type: '${\n JSON.stringify(parameterConfig.objectType)\n }'`,\n );\n }\n }\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,MAAMA,UAAU,GAAG,qCAAqC;AACxD,MAAMC,aAAa,GAAG,GAAG;AACzB,MAAMC,eAAe,GAAG,GAAG;AAC3B,MAAMC,sBAAsB,GAAG,GAAG;;AAElC;AACA;AACA;AACA;AACA,OAAO,SAASC,oBAAoBA,CAClCC,MAAqC,EAC/B;EACNC,gBAAgB,CAACD,MAAM,CAACE,EAAE,CAAC;EAC3BC,kBAAkB,CAACH,MAAM,CAACI,IAAI,CAAC;EAC/BC,yBAAyB,CAACL,MAAM,CAACM,WAAW,CAAC;EAC7CC,wBAAwB,CAACP,MAAM,CAACQ,UAAU,CAAC;AAC7C;AAEA,SAASP,gBAAgBA,CAACC,EAAU,EAAQ;EAC1C,IAAIA,EAAE,CAACO,MAAM,GAAGb,aAAa,EAAE;IAC7B,MAAM,IAAIc,KAAK,CACb,mCAAmCd,aAAa,aAClD,CAAC;EACH;EACA,IAAI,CAACD,UAAU,CAACgB,IAAI,CAACT,EAAE,CAAC,EAAE;IACxB,MAAM,IAAIQ,KAAK,CACb,cAAcR,EAAE,sDAClB,CAAC;EACH;AACF;AAEA,SAASC,kBAAkBA,CAACC,IAAY,EAAQ;EAC9C,IAAIA,IAAI,CAACK,MAAM,GAAGZ,eAAe,EAAE;IACjC,MAAM,IAAIa,KAAK,CACb,qCAAqCb,eAAe,aACtD,CAAC;EACH;AACF;AAEA,SAASQ,yBAAyBA,CAACC,WAAoB,EAAQ;EAC7D,IAAIA,WAAW,IAAI,IAAI,IAAIA,WAAW,CAACG,MAAM,GAAGX,sBAAsB,EAAE;IACtE,MAAM,IAAIY,KAAK,CACb,4CAA4CZ,sBAAsB,aACpE,CAAC;EACH;AACF;AAEA,SAASS,wBAAwBA,CAACC,UAA2B,EAAQ;EACnE,KAAK,MAAM,CAACI,WAAW,EAAEC,eAAe,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACP,UAAU,CAAC,EAAE;IACvE,IAAII,WAAW,CAACH,MAAM,GAAGb,aAAa,EAAE;MACtC,MAAM,IAAIc,KAAK,CACb,sCAAsCd,aAAa,aACrD,CAAC;IACH;IACA,IAAI,CAACD,UAAU,CAACgB,IAAI,CAACC,WAAW,CAAC,EAAE;MACjC,MAAM,IAAIF,KAAK,CACb,iBAAiBE,WAAW,sDAC9B,CAAC;IACH;IACA,IAAIC,eAAe,CAACG,IAAI,KAAK,WAAW,EAAE;MACxC,IACE,OAAOH,eAAe,CAACI,UAAU,CAACC,wBAAwB,EAAEC,GAAG,KACzD,QAAQ,EACd;QACA,MAAM,IAAIT,KAAK,CACb,wBAAwBE,WAAW,gIACjCQ,IAAI,CAACC,SAAS,CAACR,eAAe,CAACI,UAAU,CAAC,GAE9C,CAAC;MACH;IACF;EACF;AACF","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@osdk/widget.vite-plugin",
3
- "version": "3.4.0-beta.9",
3
+ "version": "3.5.0-beta.1",
4
4
  "description": "A vite plugin that will extract parameter definitions from TS/JS files + entrypoint info into a manifest file to be uploaded to Foundry ",
5
5
  "access": "public",
6
6
  "license": "Apache-2.0",
@@ -30,8 +30,8 @@
30
30
  "picocolors": "^1.1.1",
31
31
  "resolve-package-path": "^4.0.3",
32
32
  "sirv": "^3.0.2",
33
- "@osdk/foundry-config-json": "~1.6.0-beta.1",
34
- "@osdk/widget.api": "~3.4.0-beta.9"
33
+ "@osdk/foundry-config-json": "~1.7.0-beta.1",
34
+ "@osdk/widget.api": "~3.5.0-beta.1"
35
35
  },
36
36
  "peerDependencies": {
37
37
  "vite": "^6.3.5"
@@ -49,8 +49,8 @@
49
49
  "typescript": "~5.5.4",
50
50
  "vite": "^6.3.6",
51
51
  "vitest": "^3.2.4",
52
- "@osdk/monorepo.api-extractor": "~0.6.0-beta.1",
53
- "@osdk/monorepo.tsconfig": "~0.6.0-beta.1"
52
+ "@osdk/monorepo.api-extractor": "~0.7.0-beta.1",
53
+ "@osdk/monorepo.tsconfig": "~0.7.0-beta.1"
54
54
  },
55
55
  "publishConfig": {
56
56
  "access": "public"