builder.io 1.0.2 → 1.1.13-0

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.
Files changed (199) hide show
  1. package/README.md +100 -1
  2. package/angular/index.cjs +1 -0
  3. package/angular/index.d.ts +1 -0
  4. package/angular/index.mjs +1 -0
  5. package/cli/index.cjs +1201 -0
  6. package/core/index.cjs +808 -0
  7. package/core/index.d.ts +1 -0
  8. package/core/index.mjs +808 -0
  9. package/figma/index.cjs +1 -0
  10. package/figma/index.d.ts +1 -0
  11. package/figma/index.mjs +1 -0
  12. package/figma/jsx-runtime/index.cjs +7 -0
  13. package/figma/jsx-runtime/index.d.ts +46 -0
  14. package/figma/jsx-runtime/index.js +7 -0
  15. package/figma/jsx-runtime/prop-types.d.ts +125 -0
  16. package/figma/jsx-runtime/react.d.ts +5221 -0
  17. package/next/index.cjs +36 -0
  18. package/next/index.d.ts +8 -0
  19. package/next/index.mjs +36 -0
  20. package/node/index.cjs +1 -0
  21. package/node/index.d.ts +1 -0
  22. package/node/index.mjs +1 -0
  23. package/package.json +28 -8
  24. package/remix/build.cjs +1 -0
  25. package/remix/index.cjs +3 -0
  26. package/remix/index.d.ts +1 -0
  27. package/remix/index.mjs +1 -0
  28. package/remix/server-build/index.cjs +99 -0
  29. package/remix/server-build/index.d.ts +1 -0
  30. package/remix/server-build/index.mjs +60 -0
  31. package/remix/server-build/package.json +6 -0
  32. package/server/index.cjs +249 -0
  33. package/server/index.d.ts +1 -0
  34. package/server/index.mjs +249 -0
  35. package/types/angular/index.d.ts +1 -0
  36. package/types/cli/builder-add/interface.d.ts +32 -0
  37. package/types/cli/builder-add/options.d.ts +7 -0
  38. package/types/cli/credentials.d.ts +41 -0
  39. package/types/cli/download.d.ts +10 -0
  40. package/types/cli/figma-publish.d.ts +22 -0
  41. package/types/cli/figma.d.ts +11 -0
  42. package/types/cli/generate.d.ts +53 -0
  43. package/types/cli/help.d.ts +1 -0
  44. package/types/cli/index.d.ts +2 -0
  45. package/types/cli/kv.d.ts +20 -0
  46. package/types/cli/prettier.d.ts +1 -0
  47. package/types/client/client-api.d.ts +11 -0
  48. package/types/client/edit-button/document-listeners.d.ts +2 -0
  49. package/types/client/edit-button/index.d.ts +8 -0
  50. package/types/client/index.d.ts +1 -0
  51. package/types/client/menu/index.d.ts +5 -0
  52. package/types/client/menu/pages/component-detail.d.ts +4 -0
  53. package/types/client/menu/pages/component-input.d.ts +3 -0
  54. package/types/client/menu/pages/component-list.d.ts +3 -0
  55. package/types/client/menu/pages/home.d.ts +1 -0
  56. package/types/client/menu/pages/settings.d.ts +1 -0
  57. package/types/client/menu/toggle/menu-toggle.d.ts +2 -0
  58. package/types/client/setup-ui/connected.d.ts +1 -0
  59. package/types/client/setup-ui/index.d.ts +1 -0
  60. package/types/client/setup-ui/overview.d.ts +4 -0
  61. package/types/client/tracking.d.ts +22 -0
  62. package/types/client/utils.d.ts +14 -0
  63. package/types/common/ast/app-dependencies.d.ts +4 -0
  64. package/types/common/ast/component-info.d.ts +8 -0
  65. package/types/common/ast/component-input-types.d.ts +24 -0
  66. package/types/common/ast/component-registry.d.ts +9 -0
  67. package/types/common/ast/convert-values.d.ts +11 -0
  68. package/types/common/ast/convert-values.unit.d.ts +1 -0
  69. package/types/common/ast/ensure-array-statement.d.ts +7 -0
  70. package/types/common/ast/ensure-array-statement.unit.d.ts +1 -0
  71. package/types/common/ast/ensure-comments.d.ts +1 -0
  72. package/types/common/ast/ensure-imports.d.ts +9 -0
  73. package/types/common/ast/ensure-imports.unit.d.ts +1 -0
  74. package/types/common/ast/exported-statements.d.ts +8 -0
  75. package/types/common/ast/exported-statements.unit.d.ts +1 -0
  76. package/types/common/ast/normalize-statements.d.ts +7 -0
  77. package/types/common/ast/normalize-statements.unit.d.ts +1 -0
  78. package/types/common/ast/remove-unused-imports.d.ts +3 -0
  79. package/types/common/ast/remove-unused-imports.unit.d.ts +1 -0
  80. package/types/common/ast/transform.d.ts +5 -0
  81. package/types/common/ast/utils.d.ts +26 -0
  82. package/types/common/ast/utils.unit.d.ts +1 -0
  83. package/types/common/builder/builder-api.d.ts +26 -0
  84. package/types/common/builder/builder-sdks.d.ts +9 -0
  85. package/types/common/builder/content-generation.d.ts +8 -0
  86. package/types/common/builder/content-ids.d.ts +3 -0
  87. package/types/common/cache.d.ts +3 -0
  88. package/types/common/constants.d.ts +14 -0
  89. package/types/common/dotenv.d.ts +6 -0
  90. package/types/common/fs.d.ts +4 -0
  91. package/types/common/mem-sys.d.ts +8 -0
  92. package/types/common/node-request.d.ts +7 -0
  93. package/types/common/path.d.ts +4 -0
  94. package/types/common/test-utils.d.ts +7 -0
  95. package/types/common/typescript.d.ts +9 -0
  96. package/types/common/utils.d.ts +17 -0
  97. package/types/common/utils.unit.d.ts +1 -0
  98. package/types/core/adapters/angular/angular-api-key.d.ts +10 -0
  99. package/types/core/adapters/angular/angular-api-key.unit.d.ts +1 -0
  100. package/types/core/adapters/angular/angular-app-module-imports.d.ts +3 -0
  101. package/types/core/adapters/angular/angular-app-module-imports.unit.d.ts +1 -0
  102. package/types/core/adapters/angular/angular-components.d.ts +18 -0
  103. package/types/core/adapters/angular/angular-components.unit.d.ts +1 -0
  104. package/types/core/adapters/angular/angular-ensure-builder-setup.d.ts +5 -0
  105. package/types/core/adapters/angular/angular-ensure-config-plugin.d.ts +9 -0
  106. package/types/core/adapters/angular/angular-ensure-config-plugin.unit.d.ts +1 -0
  107. package/types/core/adapters/angular/angular-registry-parse.d.ts +16 -0
  108. package/types/core/adapters/angular/angular-registry-parse.unit.d.ts +1 -0
  109. package/types/core/adapters/angular/angular-registry.d.ts +3 -0
  110. package/types/core/adapters/angular/angular-registry.unit.d.ts +1 -0
  111. package/types/core/adapters/angular/angular-test-utils.d.ts +6 -0
  112. package/types/core/adapters/angular/index.d.ts +13 -0
  113. package/types/core/adapters/next/index.d.ts +14 -0
  114. package/types/core/adapters/next/next-api-key.d.ts +4 -0
  115. package/types/core/adapters/next/next-component-info.d.ts +5 -0
  116. package/types/core/adapters/next/next-component-info.unit.d.ts +1 -0
  117. package/types/core/adapters/next/next-component-inputs.unit.d.ts +1 -0
  118. package/types/core/adapters/next/next-component-source-inputs.unit.d.ts +1 -0
  119. package/types/core/adapters/next/next-components.d.ts +4 -0
  120. package/types/core/adapters/next/next-ensure-builder-setup.d.ts +4 -0
  121. package/types/core/adapters/next/next-ensure-config-plugin.d.ts +3 -0
  122. package/types/core/adapters/next/next-ensure-config-plugin.unit.d.ts +1 -0
  123. package/types/core/adapters/next/next-registry-parse.d.ts +14 -0
  124. package/types/core/adapters/next/next-registry-parse.unit.d.ts +1 -0
  125. package/types/core/adapters/next/next-registry.d.ts +3 -0
  126. package/types/core/adapters/next/next-registry.unit.d.ts +1 -0
  127. package/types/core/adapters/next/next-test-utils.d.ts +16 -0
  128. package/types/core/adapters/qwik-city/index.d.ts +8 -0
  129. package/types/core/adapters/qwik-city/qwik-api-key.d.ts +4 -0
  130. package/types/core/adapters/qwik-city/qwik-component-source-inputs.d.ts +3 -0
  131. package/types/core/adapters/qwik-city/qwik-components.d.ts +15 -0
  132. package/types/core/adapters/qwik-city/qwik-components.unit.d.ts +1 -0
  133. package/types/core/adapters/qwik-city/qwik-ensure-builder-setup.d.ts +4 -0
  134. package/types/core/adapters/qwik-city/qwik-ensure-config-plugin.d.ts +2 -0
  135. package/types/core/adapters/qwik-city/qwik-registry-parse.d.ts +16 -0
  136. package/types/core/adapters/qwik-city/qwik-registry-parse.unit.d.ts +1 -0
  137. package/types/core/adapters/qwik-city/qwik-registry.d.ts +3 -0
  138. package/types/core/adapters/qwik-city/qwik-registry.unit.d.ts +1 -0
  139. package/types/core/adapters/qwik-city/qwik-test-utils.d.ts +6 -0
  140. package/types/core/adapters/qwik-city/qwik-ts-program.d.ts +2 -0
  141. package/types/core/adapters/react/index.d.ts +13 -0
  142. package/types/core/adapters/react/react-api-key.d.ts +6 -0
  143. package/types/core/adapters/react/react-builder-sdk-setup.d.ts +2 -0
  144. package/types/core/adapters/react/react-component-info.d.ts +5 -0
  145. package/types/core/adapters/react/react-components.d.ts +18 -0
  146. package/types/core/adapters/react/react-components.unit.d.ts +1 -0
  147. package/types/core/adapters/react/react-ensure-builder-setup.d.ts +4 -0
  148. package/types/core/adapters/react/react-registry-parse.d.ts +12 -0
  149. package/types/core/adapters/react/react-registry-parse.unit.d.ts +1 -0
  150. package/types/core/adapters/react/react-registry.d.ts +3 -0
  151. package/types/core/adapters/react/react-registry.unit.d.ts +1 -0
  152. package/types/core/adapters/react/react-test-utils.d.ts +6 -0
  153. package/types/core/adapters/react/react-ts-program.d.ts +2 -0
  154. package/types/core/adapters/remix/index.d.ts +12 -0
  155. package/types/core/adapters/remix/remix-api-key.d.ts +4 -0
  156. package/types/core/adapters/remix/remix-components.d.ts +4 -0
  157. package/types/core/adapters/remix/remix-ensure-builder-setup.d.ts +5 -0
  158. package/types/core/adapters/remix/remix-ensure-config-plugin.d.ts +3 -0
  159. package/types/core/adapters/remix/remix-ensure-config-plugin.unit.d.ts +1 -0
  160. package/types/core/adapters/remix/remix-registry-parse.d.ts +16 -0
  161. package/types/core/adapters/remix/remix-registry.d.ts +3 -0
  162. package/types/core/adapters/remix/remix-registry.unit.d.ts +1 -0
  163. package/types/core/adapters/remix/remix-test-utils.d.ts +6 -0
  164. package/types/core/adapters/vite/vite-ensure-config-plugin.d.ts +3 -0
  165. package/types/core/adapters/vite/vite-ensure-config-plugin.unit.d.ts +1 -0
  166. package/types/core/adapters/webpack/webpack-ensure-config-plugin.d.ts +3 -0
  167. package/types/core/client-script.d.ts +1 -0
  168. package/types/core/create-dev-tools.d.ts +2 -0
  169. package/types/core/detect-frameworks.d.ts +3 -0
  170. package/types/core/ensure-config-plugin.d.ts +3 -0
  171. package/types/core/import-export-registry.d.ts +3 -0
  172. package/types/core/index.d.ts +8 -0
  173. package/types/figma/index.d.ts +76 -0
  174. package/types/figma/jsx-runtime/index.d.cts +2 -0
  175. package/types/figma/jsx-runtime/index.d.ts +2 -0
  176. package/types/next/index.d.cts +4 -0
  177. package/types/next/index.d.mts +4 -0
  178. package/types/node/index.d.ts +2 -0
  179. package/types/node/node-sys.d.ts +11 -0
  180. package/types/remix/index-shim.d.cts +2 -0
  181. package/types/remix/index.d.ts +6 -0
  182. package/types/server/auth.d.ts +2 -0
  183. package/types/server/builder-connect.d.ts +3 -0
  184. package/types/server/client-script.d.ts +3 -0
  185. package/types/server/create-dev-tools-server.d.ts +2 -0
  186. package/types/server/dev-tools-api.d.ts +2 -0
  187. package/types/server/dev-tools-http-server.d.ts +2 -0
  188. package/types/server/index.d.ts +3 -0
  189. package/types/server/request-handler.d.ts +4 -0
  190. package/types/types.d.ts +411 -0
  191. package/types/vite/index.d.ts +7 -0
  192. package/types/webpack/index.d.ts +9 -0
  193. package/vite/index.cjs +3 -0
  194. package/vite/index.d.ts +1 -0
  195. package/vite/index.mjs +3 -0
  196. package/webpack/index.cjs +30 -0
  197. package/webpack/index.d.ts +1 -0
  198. package/webpack/index.mjs +30 -0
  199. package/index.js +0 -80
@@ -0,0 +1,76 @@
1
+ /// <reference types="@figma/plugin-typings" />
2
+ export type FigmaNodeType = "COMPONENT" | "ELLIPSE" | "FRAME" | "GROUP" | "INSTANCE" | "LINE" | "POLYGON" | "RECTANGLE" | "STAR" | "TEXT" | "VECTOR";
3
+ export interface FigmaComponentInput {
4
+ id: string;
5
+ name: string;
6
+ value?: any;
7
+ type: string;
8
+ baseType: "text" | "variant" | "boolean" | "slot";
9
+ variantOptions?: string[];
10
+ isDefault: boolean;
11
+ ref?: string;
12
+ }
13
+ export interface FigmaNode {
14
+ "@type": "passedNode";
15
+ $id: string;
16
+ $name: string;
17
+ $type: FigmaNodeType;
18
+ $inputs: readonly FigmaComponentInput[];
19
+ $componentName?: string;
20
+ $rawNode: SceneNode;
21
+ /** Represents the text content of the node and its descendants */
22
+ $textContent: string;
23
+ /** URL to the rasterized image of this node */
24
+ $imageUrl: string;
25
+ $children: readonly FigmaNode[];
26
+ /** Recursively finds the first node that matches the callback */
27
+ $findOne(callback: (node: SceneNode) => boolean): FigmaNode | undefined;
28
+ /** Recursively finds the first figma child with the given name */
29
+ $findOneByName(name: string | RegExp): FigmaNode | undefined;
30
+ /** @deprecated Use $type instead */
31
+ type: FigmaNodeType;
32
+ /** @deprecated - */
33
+ props: {};
34
+ /** @deprecated - */
35
+ key: string | null;
36
+ }
37
+ export interface BaseFigmaProps {
38
+ $id: string;
39
+ $name: string;
40
+ $type: FigmaNodeType;
41
+ $inputs: readonly FigmaComponentInput[];
42
+ $componentName?: string;
43
+ /** Represents the text content of the node and its descendants */
44
+ $textContent: string;
45
+ $css: Readonly<Record<string, string>>;
46
+ /** URL to the rasterized image of this node */
47
+ $imageUrl: string;
48
+ /** Direct children of the root component node or instance */
49
+ $children: readonly FigmaNode[];
50
+ /** Recursively finds the first figma child with the given name */
51
+ $findOneByName(name: string | RegExp): FigmaNode | undefined;
52
+ /** Recursively finds the first node that matches the callback */
53
+ $findOne(callback: (node: SceneNode) => boolean): FigmaNode | undefined;
54
+ }
55
+ interface FigmaProps extends BaseFigmaProps {
56
+ [key: string]: any;
57
+ }
58
+ export type FigmaURL = `https://www.figma.com/design/${string}/${string}${"?" | "&"}node-id=${string}`;
59
+ export interface FigmaMappingWithKeyMapper<T extends BaseFigmaProps> {
60
+ url?: FigmaURL;
61
+ componentKey: string;
62
+ mapper?: (figma: T) => any;
63
+ }
64
+ export interface FigmaMappingWithUrlMapper<T extends BaseFigmaProps> {
65
+ url: FigmaURL;
66
+ componentKey?: string;
67
+ mapper?: (figma: T) => any;
68
+ }
69
+ export interface FigmaGenericMapper {
70
+ genericMapper: (figma: FigmaProps) => any;
71
+ }
72
+ export interface FigmaTokenMapper {
73
+ designTokenMapper: (token: string) => string | undefined | boolean;
74
+ }
75
+ export declare function figmaMapping<T extends BaseFigmaProps = FigmaProps>(_config: FigmaMappingWithKeyMapper<T> | FigmaMappingWithUrlMapper<T> | FigmaGenericMapper | FigmaTokenMapper): void;
76
+ export {};
@@ -0,0 +1,2 @@
1
+ export function jsx(): null;
2
+ export function jsxs(): null;
@@ -0,0 +1,2 @@
1
+ export function jsx(): null;
2
+ export function jsxs(): null;
@@ -0,0 +1,4 @@
1
+ declare function _exports(opts?: {}): (nextConfig?: {}) => {
2
+ webpack(config: any, options: any): any;
3
+ };
4
+ export = _exports;
@@ -0,0 +1,4 @@
1
+ declare function _default(opts?: {}): (nextConfig?: {}) => {
2
+ webpack(config: any, options: any): any;
3
+ };
4
+ export default _default;
@@ -0,0 +1,2 @@
1
+ export type { DevToolsSys } from "../types";
2
+ export { createDevToolsNodeSys } from "./node-sys";
@@ -0,0 +1,11 @@
1
+ import type { DevToolsSys } from "../types";
2
+ interface DevToolsNodeSysOptions {
3
+ getRootDir: () => string;
4
+ skipValidate?: boolean;
5
+ ignoreMissingConfig?: boolean;
6
+ }
7
+ export declare function createDevToolsNodeSys(opts: DevToolsNodeSysOptions): Promise<DevToolsSys>;
8
+ export declare function configHasProperty(contents: Record<string, any>, key: string): boolean;
9
+ export declare function readConfigFile(): Promise<any>;
10
+ export declare function writeConfigFile(contents: Record<string, any>): Promise<void>;
11
+ export {};
@@ -0,0 +1,2 @@
1
+ declare const _exports: any;
2
+ export = _exports;
@@ -0,0 +1,6 @@
1
+ declare const _default: (devToolsOpts?: RemixBuilderDevToolsOptions) => (remixConfig: any) => any;
2
+ export default _default;
3
+ export interface RemixBuilderDevToolsOptions {
4
+ enabled?: boolean;
5
+ devToolsServerPort?: number;
6
+ }
@@ -0,0 +1,2 @@
1
+ import type { DevToolsServerContext } from "../types";
2
+ export declare function getBuilderAuthConnectUrl(ctx: DevToolsServerContext, previewUrl: string): Promise<string>;
@@ -0,0 +1,3 @@
1
+ import type { DevToolsServerContext, ConnectedBuilder, ValidatedBuilder } from "../types";
2
+ export declare function connectBuilder(ctx: DevToolsServerContext, publicApiKey: string, privateAuthKey: string): Promise<ConnectedBuilder>;
3
+ export declare function validateBuilder(ctx: DevToolsServerContext): Promise<ValidatedBuilder>;
@@ -0,0 +1,3 @@
1
+ import type { DevToolsServerContext } from "../types";
2
+ export declare function getClientScript(ctx: DevToolsServerContext): Promise<string>;
3
+ export declare function getConnectedStepHtml(ctx: DevToolsServerContext): Promise<string>;
@@ -0,0 +1,2 @@
1
+ import type { DevToolsServer, DevToolsServerOptions } from "../types";
2
+ export declare function createDevToolsServer(opts: DevToolsServerOptions): Promise<DevToolsServer>;
@@ -0,0 +1,2 @@
1
+ import type { ApiResponse, ApiRequest, DevToolsServerContext } from "../types";
2
+ export declare function handleDevApiRequest(ctx: DevToolsServerContext, apiReq: ApiRequest): Promise<ApiResponse>;
@@ -0,0 +1,2 @@
1
+ import type { DevToolsServerContext, DevToolsHttpServer } from "../types";
2
+ export declare function createDevToolsHttpServer(ctx: DevToolsServerContext): Promise<DevToolsHttpServer>;
@@ -0,0 +1,3 @@
1
+ export type { ApiRequest, ApiResponse, ApiConnectBuilderRequest, ApiDevToolsEnabledRequest, ApiGetRegistryRequest, ApiLaunchEditorRequest, ApiRegisterComponentRequest, ApiRegisteredComponentInfoRequest, ApiRegisteredComponentInputRequest, ApiLoadComponentRequest, ApiUnregisterComponentRequest, ApiValidateBuilderRequest, ApiFrameworksRequest, ApiReadFileRequest, ApiWriteFileRequest, ApiReaddirRequest, ComponentRegistry, DevToolsServer, DevToolsServerOptions, Framework, GetRegistryOptions, TranspileDiagnostic, TranspileFileOptions, TranspileModuleOptions, TranspileResult, } from "../types";
2
+ export { createDevToolsServer } from "./create-dev-tools-server";
3
+ export declare const version: string;
@@ -0,0 +1,4 @@
1
+ /// <reference types="node" />
2
+ import type { DevToolsServerContext } from "../types";
3
+ import type { IncomingMessage, Server, ServerResponse } from "http";
4
+ export declare function handleDevRequest(ctx: DevToolsServerContext | null, server: Server, req: IncomingMessage, res: ServerResponse): Promise<void>;
@@ -0,0 +1,411 @@
1
+ export interface DevToolsPath {
2
+ basename: (path: string, suffix?: string) => string;
3
+ extname: (path: string) => string;
4
+ dirname: (path: string) => string;
5
+ isAbsolute: (path: string) => boolean;
6
+ join: (...paths: string[]) => string;
7
+ normalize: (path: string) => string;
8
+ relative: (from: string, to: string) => string;
9
+ resolve: (...pathSegments: string[]) => string;
10
+ }
11
+ export interface DevToolsSys extends DevToolsPath {
12
+ cwd: () => string;
13
+ getRootDir: () => string;
14
+ exists: (path: string) => Promise<boolean>;
15
+ existsSync: (path: string) => boolean;
16
+ readdir: (path: string, absolutePaths?: boolean) => Promise<string[]>;
17
+ readdirSync: (path: string) => string[];
18
+ readFile: (filePath: string) => Promise<string | null>;
19
+ readFileSync: (filePath: string) => string | null;
20
+ stat: (path: string) => Promise<{
21
+ isDirectory: () => boolean;
22
+ isFile: () => boolean;
23
+ }>;
24
+ statSync: (path: string) => {
25
+ isDirectory: () => boolean;
26
+ isFile: () => boolean;
27
+ };
28
+ writeFile: (filePath: string, content: string) => Promise<void>;
29
+ formatCode: (filePath: string, code: string) => Promise<string>;
30
+ hash: (str: string) => Promise<string>;
31
+ on: (eventName: "change", callback: FileChangeCallback) => void;
32
+ off: (eventName: "change", callback: FileChangeCallback) => void;
33
+ debug: (...args: any[]) => void;
34
+ launchEditor: (file: LaunchEditorFile) => Promise<void>;
35
+ platform: () => DevtoolsPlatform;
36
+ getDeviceId: () => Promise<string>;
37
+ getFrameworks: () => Framework[];
38
+ ts: typeof import("typescript");
39
+ version: string;
40
+ sdkVersion: SDK_VERSION_VALUES | null;
41
+ ignoreMissingConfig?: boolean;
42
+ }
43
+ export interface DevtoolsPlatform {
44
+ runtime: string;
45
+ os: string;
46
+ }
47
+ export type FileChangeCallback = (file: FileChangeInfo) => Promise<void> | void;
48
+ export interface FileChangeInfo {
49
+ path: string;
50
+ basename: string;
51
+ extname: string;
52
+ dirname: string;
53
+ }
54
+ export interface EnsureConfigResult {
55
+ content: string;
56
+ filePath: string;
57
+ fileName: string;
58
+ hasContentUpdates: boolean;
59
+ }
60
+ export interface FrameworkDependency {
61
+ name: string;
62
+ version?: string;
63
+ devDependency?: boolean;
64
+ }
65
+ export interface BuildToolConfig {
66
+ id: string;
67
+ content: string;
68
+ filePath: string;
69
+ }
70
+ export interface CreateDevToolsOptions extends DevToolsSys {
71
+ frameworks?: Framework[];
72
+ }
73
+ export interface FrameworkBuilderPageOptions {
74
+ templateContentId: string;
75
+ title: string;
76
+ pathname: string;
77
+ localePathname?: string;
78
+ }
79
+ export interface DevToolsAdapter {
80
+ getPublicApiKey: () => Promise<EnvInfo>;
81
+ setPublicApiKey: (opts: SetPublicApiKeyOptions) => Promise<EnvInfo>;
82
+ builderPageOptions: () => Promise<FrameworkBuilderPageOptions>;
83
+ ensureBuilderSetup: () => Promise<ModifiedFile[]>;
84
+ ensureFigmaImportPage: () => Promise<ModifiedFile[]>;
85
+ getRegistry: (opts?: GetRegistryOptions) => Promise<ComponentRegistry>;
86
+ getRegistryPath: () => string;
87
+ loadComponent: (opts: LoadComponentOptions) => Promise<LoadComponent>;
88
+ registerComponent: (opts: RegisterComponentOptions) => Promise<ComponentRegistry>;
89
+ unregisterComponent: (opts: UnregisterComponentOptions) => Promise<ComponentRegistry>;
90
+ setRegisteredComponentInfo: (opts: SetComponentInfoOptions) => Promise<ComponentRegistry>;
91
+ setRegisteredComponentInput: (opts: SetComponentInputOptions) => Promise<ComponentRegistry>;
92
+ getDependencies: (opts: DependenciesOptions) => FrameworkDependency[];
93
+ getDevRunCommand: () => string;
94
+ getCache: () => Promise<Record<string, any>>;
95
+ setCache: (cache: Record<string, any>) => Promise<void>;
96
+ }
97
+ export interface DevTools extends DevToolsAdapter {
98
+ exportRegistry: () => Promise<string>;
99
+ importRegistry: (exportedRegistry: string) => Promise<ComponentRegistry>;
100
+ framework: string;
101
+ }
102
+ export interface DevToolsServerOptions extends DevToolsSys, DevTools {
103
+ getClientId: () => string;
104
+ getPastSyncInfo?: () => any;
105
+ enableAppWatch: (enabled: boolean) => Promise<boolean>;
106
+ closeAppServer: () => Promise<void>;
107
+ restartAppServer: () => Promise<void>;
108
+ port?: number;
109
+ }
110
+ export interface DevToolsHttpServer {
111
+ url: string;
112
+ port: number;
113
+ setContext(ctx: DevToolsServerContext): void;
114
+ close(): Promise<void>;
115
+ }
116
+ export interface BuilderAppCredentials {
117
+ publicApiKey: string | null;
118
+ }
119
+ export interface DevToolsServerContext extends Required<DevToolsServerOptions>, BuilderAppCredentials {
120
+ devToolsServerUrl: string;
121
+ isValid: boolean;
122
+ serverShouldRestart: boolean;
123
+ }
124
+ export interface SetPublicApiKeyOptions {
125
+ publicApiKey: string;
126
+ }
127
+ export interface EnvInfo {
128
+ envKey: string;
129
+ envValue: string | null;
130
+ file: string;
131
+ modifiedType?: "create" | "update" | null;
132
+ }
133
+ export interface DevToolsServer {
134
+ getUrl: () => string;
135
+ }
136
+ export type ApiRequest = ApiConnectBuilderRequest | ApiDevToolsEnabledRequest | ApiGetRegistryRequest | ApiLaunchEditorRequest | ApiRegisterComponentRequest | ApiRegisteredComponentInfoRequest | ApiRegisteredComponentInputRequest | ApiLoadComponentRequest | ApiUnregisterComponentRequest | ApiValidateBuilderRequest | ApiFrameworksRequest | ApiReadFileRequest | ApiWriteFileRequest | ApiReaddirRequest | ApiGetBuilderCacheRequest | ApiEnsureFigmaImportPageRequest | ApiSetBuilderCacheRequest | ApiTranspileModuleRequest | ApiTranspileFileRequest | ApiPastSyncInfoRequest;
137
+ export interface ApiTranspileModuleRequest extends TranspileModuleOptions {
138
+ type: "transileModule";
139
+ }
140
+ export interface ApiTranspileFileRequest extends TranspileFileOptions {
141
+ type: "transileFile";
142
+ }
143
+ export interface ApiGetBuilderCacheRequest {
144
+ type: "getCache";
145
+ }
146
+ export interface ApiSetBuilderCacheRequest {
147
+ type: "setCache";
148
+ data: Record<string, any>;
149
+ }
150
+ export interface ApiPastSyncInfoRequest {
151
+ type: "getPastSyncInfo";
152
+ data: Record<string, any>;
153
+ }
154
+ export interface ApiEnsureFigmaImportPageRequest {
155
+ type: "ensureFigmaImportPage";
156
+ }
157
+ export interface ApiConnectBuilderRequest {
158
+ type: "connectBuilder";
159
+ data: {
160
+ publicApiKey: string;
161
+ privateAuthKey: string;
162
+ };
163
+ }
164
+ export interface ApiDevToolsEnabledRequest {
165
+ type: "enableDevTools";
166
+ data: {
167
+ enabled: boolean;
168
+ };
169
+ }
170
+ export interface ApiGetRegistryRequest {
171
+ type: "getRegistry";
172
+ data?: GetRegistryOptions;
173
+ }
174
+ export interface GetRegistryOptions {
175
+ readAllInputTypes?: boolean;
176
+ }
177
+ export interface ApiLaunchEditorRequest {
178
+ type: "launchEditor";
179
+ data: LaunchEditorFile;
180
+ }
181
+ export interface ApiRegisterComponentRequest {
182
+ type: "registerComponent";
183
+ data: RegisterComponentOptions;
184
+ }
185
+ export interface ApiUnregisterComponentRequest {
186
+ type: "unregisterComponent";
187
+ data: UnregisterComponentOptions;
188
+ }
189
+ export interface ApiRegisteredComponentInfoRequest {
190
+ type: "setComponentInfo";
191
+ data: SetComponentInfoOptions;
192
+ }
193
+ export interface ApiRegisteredComponentInputRequest {
194
+ type: "setComponentInput";
195
+ data: SetComponentInputOptions;
196
+ }
197
+ export interface ApiLoadComponentRequest {
198
+ type: "loadComponent";
199
+ data: LoadComponentOptions;
200
+ }
201
+ export interface ApiValidateBuilderRequest {
202
+ type: "validateBuilder";
203
+ }
204
+ export interface ApiFrameworksRequest {
205
+ type: "getFrameworks";
206
+ }
207
+ export interface ApiReadFileRequest {
208
+ type: "readFile";
209
+ path: string;
210
+ }
211
+ export interface ApiWriteFileRequest {
212
+ type: "writeFile";
213
+ path: string;
214
+ content: string;
215
+ }
216
+ export interface ApiReaddirRequest {
217
+ type: "readdir";
218
+ path: string;
219
+ }
220
+ export interface ApiResponse<T = any> {
221
+ type?: string;
222
+ data?: T;
223
+ errors?: string[];
224
+ }
225
+ export interface ValidatedBuilder {
226
+ isValid: boolean;
227
+ pathname: string;
228
+ platform: DevtoolsPlatform;
229
+ }
230
+ export interface ConnectedBuilder {
231
+ success: boolean;
232
+ pathname: string;
233
+ modifiedFiles: ModifiedFile[];
234
+ platform: DevtoolsPlatform;
235
+ }
236
+ export interface ModifiedFile {
237
+ filePath: string;
238
+ displayFilePath?: string;
239
+ modifiedType: "create" | "update";
240
+ }
241
+ export interface Framework {
242
+ name: string;
243
+ }
244
+ export interface ComponentRegistry {
245
+ components: ComponentInfo[];
246
+ registryPath: string;
247
+ registryDisplayPath: string;
248
+ frameworks: Framework[];
249
+ dependencies: AppDependency[];
250
+ publicApiKey: string | undefined;
251
+ devToolsVersion: string;
252
+ }
253
+ export interface AppDependency {
254
+ name: string;
255
+ }
256
+ export interface ExportedRegistry {
257
+ components: MinimalComponentInfo[];
258
+ version: number;
259
+ }
260
+ export interface LoadComponent extends ComponentRegistry {
261
+ component: ComponentInfo;
262
+ }
263
+ export interface LoadComponentOptions {
264
+ cmpId: string;
265
+ }
266
+ export interface RegisterComponentOptions {
267
+ cmpId: string | string[];
268
+ }
269
+ export interface UnregisterComponentOptions {
270
+ cmpId: string;
271
+ }
272
+ export interface SetComponentInfoOptions {
273
+ cmpId: string;
274
+ name?: string;
275
+ image?: string | null;
276
+ description?: string | null;
277
+ }
278
+ export interface SetComponentInputOptions extends Partial<Omit<ComponentInput, "isRegistered">> {
279
+ cmpId: string;
280
+ name: string;
281
+ registerInput?: boolean;
282
+ }
283
+ export interface DependenciesOptions {
284
+ sdkVersion: SDK_VERSION_VALUES | null;
285
+ }
286
+ export interface ComponentInfo {
287
+ id: string;
288
+ filePath: string;
289
+ relFilePath: string;
290
+ importPath: string;
291
+ name: string;
292
+ image?: string;
293
+ description?: string;
294
+ inputs: ComponentInput[];
295
+ displayFilePath?: string;
296
+ exportName: string;
297
+ exportType?: ExportType;
298
+ importName: string;
299
+ nodeIndex?: number;
300
+ isRegistered?: boolean;
301
+ acceptsChildren?: boolean;
302
+ meta?: Record<string, any>;
303
+ dependencies?: AppDependency[];
304
+ }
305
+ export interface MinimalComponentInfo {
306
+ filePath: string;
307
+ name: string;
308
+ image?: string;
309
+ description?: string;
310
+ inputs: ComponentInput[];
311
+ exportName: string;
312
+ }
313
+ /**
314
+ * Extends the @builder.io/sdk Input type to include additional properties.
315
+ * If a property is set to null, it will be removed from the input.
316
+ */
317
+ export interface ComponentInput {
318
+ /** This is the name of the component prop this input represents */
319
+ name: string;
320
+ /** A friendlier name to show in the UI if the component prop name is not ideal for end users. Setting to null will remove the value. */
321
+ friendlyName?: string | null;
322
+ /** A default value to use. Setting to null will remove the value. */
323
+ defaultValue?: string | number | boolean | null;
324
+ /**
325
+ * The type of input to use, such as 'text'
326
+ *
327
+ * See all available inputs [here](https://www.builder.io/c/docs/custom-react-components#input-types)
328
+ * and you can create your own custom input types and associated editor UIs with [plugins](https://www.builder.io/c/docs/extending/plugins)
329
+ */
330
+ type: string;
331
+ /** Is this input mandatory or not. Setting to null will remove the setting. */
332
+ required?: boolean | null;
333
+ /**
334
+ * Additional text to render in the UI to give guidance on how to use this
335
+ *
336
+ * @example
337
+ * ```js
338
+ * helperText: 'Be sure to use a proper URL, starting with "https://"'
339
+ * 111
340
+ */
341
+ helperText?: string | null;
342
+ /**
343
+ * For "text" input type, specifying an enum will show a dropdown of options instead
344
+ */
345
+ enum?: string[] | {
346
+ label: string;
347
+ value: string | number | boolean;
348
+ helperText?: string;
349
+ }[];
350
+ meta?: Record<string, any>;
351
+ /** Add-on data that should not go in the registry */
352
+ isRegistered?: boolean;
353
+ hideFromUI?: boolean;
354
+ }
355
+ export type ExportType = "default" | "named";
356
+ export interface PackageJSON {
357
+ dependencies?: {
358
+ [pkgName: string]: string;
359
+ };
360
+ devDependencies?: {
361
+ [pkgName: string]: string;
362
+ };
363
+ scripts?: {
364
+ [scriptName: string]: string;
365
+ };
366
+ [key: string]: any;
367
+ }
368
+ export type ModuleFormat = "esm" | "cjs";
369
+ export interface LaunchEditorFile {
370
+ filePath: string;
371
+ line?: number;
372
+ column?: number;
373
+ }
374
+ export interface TranspileFileOptions {
375
+ filePath: string;
376
+ compilerOptions: import("typescript").CompilerOptions;
377
+ }
378
+ export interface TranspileModuleOptions {
379
+ code: string;
380
+ filePath?: string;
381
+ compilerOptions: import("typescript").CompilerOptions;
382
+ }
383
+ export interface TranspileResult {
384
+ code: string | null;
385
+ output: string | null;
386
+ diagnostics: TranspileDiagnostic[];
387
+ }
388
+ export interface TranspileDiagnostic {
389
+ messageText: string;
390
+ }
391
+ export declare const SDK_VERSIONS: {
392
+ readonly gen1: "Gen 1";
393
+ readonly gen2: "Gen 2";
394
+ };
395
+ type SDK_VERSION_KEYS = keyof typeof SDK_VERSIONS;
396
+ export type SDK_VERSION_VALUES = (typeof SDK_VERSIONS)[SDK_VERSION_KEYS];
397
+ export interface SDKVersionInfo {
398
+ version: SDK_VERSION_VALUES;
399
+ recommended: boolean;
400
+ }
401
+ export interface SDKFrameworks {
402
+ [key: string]: SDKVersionInfo[];
403
+ }
404
+ export interface UpdateRegistry {
405
+ addCmpToRegistry: ComponentInfo | null;
406
+ removeCmpFromRegistry: ComponentInfo | null;
407
+ updateRegisteredCmp: ComponentInfo | null;
408
+ nodeIndex: number;
409
+ components: ComponentInfo[];
410
+ }
411
+ export {};
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Vite plugin that adds Builder Devtools to your Vite dev server.
3
+ */
4
+ export declare function builderDevTools(opts?: ViteBuilderDevToolsOptions): any;
5
+ export interface ViteBuilderDevToolsOptions {
6
+ devToolsServerPort?: number;
7
+ }
@@ -0,0 +1,9 @@
1
+ export declare class BuilderDevToolsPlugin {
2
+ private readonly opts;
3
+ constructor(opts?: WebpackBuilderDevToolsOptions);
4
+ apply(c: any): void;
5
+ }
6
+ export interface WebpackBuilderDevToolsOptions {
7
+ enabled?: boolean;
8
+ devToolsServerPort?: number;
9
+ }
package/vite/index.cjs ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";var b=Object.create;var u=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,x=Object.prototype.hasOwnProperty;var D=(n,e)=>{for(var t in e)u(n,t,{get:e[t],enumerable:!0})},g=(n,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of E(e))!x.call(n,s)&&s!==t&&u(n,s,{get:()=>e[s],enumerable:!(o=h(e,s))||o.enumerable});return n};var V=(n,e,t)=>(t=n!=null?b(y(n)):{},g(e||!n||!n.__esModule?u(t,"default",{value:n,enumerable:!0}):t,n)),I=n=>g(u({},"__esModule",{value:!0}),n);var v={};D(v,{builderDevTools:()=>j});module.exports=I(v);var p=require("../core/index.cjs"),d=require("../node/index.cjs"),w=require("../server/index.cjs");async function f(n,e){let t=await n.readFile(e);return typeof t=="string"?R(t):null}function R(n){let e={},t=n.replace(/\r\n?/gm,`
2
+ `),o;for(;(o=C.exec(t))!=null;){let s=o[1],r=o[2]||"";r=r.trim();let c=r[0];r=r.replace(/^(['"`])([\s\S]*)\1$/gm,"$2"),c==='"'&&(r=r.replace(/\\n/g,`
3
+ `),r=r.replace(/\\r/g,"\r")),e[s]=r}return e}var C=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/gm;var m=V(require("path"),1);function j(n={}){return{name:"vite-plugin-builder-dev-tools",async configureServer(t){let o=await(0,d.createDevToolsNodeSys)({getRootDir:()=>m.default.normalize(t.config.root)}),s=await(0,p.createDevTools)(o),r=await(0,w.createDevToolsServer)({...s,getClientId:()=>"vite-builder-dev-tools",closeAppServer:async()=>{o.debug("close server"),await t?.close()},restartAppServer:async()=>{o.debug("restart server"),await t?.restart()},enableAppWatch:async c=>{if(c){o.debug("enable watch"),t?.watcher.add(t.config.root);let i=o.join(t.config.root,".git"),l=o.join(t.config.root,"node_modules");t?.watcher.unwatch([i,l])}else o.debug("disable watch"),t?.watcher.unwatch(t.config.root);return c},...o,...n});t.watcher.on("change",async c=>{if(c.includes(".env")){let i=await f(o,c);i&&Object.keys(i).forEach(a=>{process.env[a]=i[a]})}}),t.middlewares.use(async(c,i,l)=>{try{let a=i.end;i.end=function(...$){if((i.getHeader("Content-Type")||"").toString().includes("text/html")){let T=(0,p.getClientScript)(r.getUrl());i.write(`<script>${T}</script>`)}return a.apply(this,$)},l()}catch(a){l(a)}})}}}0&&(module.exports={builderDevTools});
@@ -0,0 +1 @@
1
+ export * from "../types/vite";
package/vite/index.mjs ADDED
@@ -0,0 +1,3 @@
1
+ import{createDevTools as w,getClientScript as m}from"../core/index.mjs";import{createDevToolsNodeSys as $}from"../node/index.mjs";import{createDevToolsServer as T}from"../server/index.mjs";async function u(s,c){let t=await s.readFile(c);return typeof t=="string"?f(t):null}function f(s){let c={},t=s.replace(/\r\n?/gm,`
2
+ `),n;for(;(n=d.exec(t))!=null;){let l=n[1],e=n[2]||"";e=e.trim();let r=e[0];e=e.replace(/^(['"`])([\s\S]*)\1$/gm,"$2"),r==='"'&&(e=e.replace(/\\n/g,`
3
+ `),e=e.replace(/\\r/g,"\r")),c[l]=e}return c}var d=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/gm;import b from"path";function R(s={}){return{name:"vite-plugin-builder-dev-tools",async configureServer(t){let n=await $({getRootDir:()=>b.normalize(t.config.root)}),l=await w(n),e=await T({...l,getClientId:()=>"vite-builder-dev-tools",closeAppServer:async()=>{n.debug("close server"),await t?.close()},restartAppServer:async()=>{n.debug("restart server"),await t?.restart()},enableAppWatch:async r=>{if(r){n.debug("enable watch"),t?.watcher.add(t.config.root);let o=n.join(t.config.root,".git"),a=n.join(t.config.root,"node_modules");t?.watcher.unwatch([o,a])}else n.debug("disable watch"),t?.watcher.unwatch(t.config.root);return r},...n,...s});t.watcher.on("change",async r=>{if(r.includes(".env")){let o=await u(n,r);o&&Object.keys(o).forEach(i=>{process.env[i]=o[i]})}}),t.middlewares.use(async(r,o,a)=>{try{let i=o.end;o.end=function(...p){if((o.getHeader("Content-Type")||"").toString().includes("text/html")){let g=m(e.getUrl());o.write(`<script>${g}</script>`)}return i.apply(this,p)},a()}catch(i){a(i)}})}}}export{R as builderDevTools};