@superblocksteam/cli 2.0.3-next.152 → 2.0.3-next.154
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/README.md +1 -1
- package/dist/{generated-RWPUAFSG.js → generated-FORH4H64.js} +1 -1
- package/dist/index.js +223 -166
- package/oclif.manifest.json +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@ $ npm install -g @superblocksteam/cli
|
|
|
14
14
|
$ superblocks COMMAND
|
|
15
15
|
running command...
|
|
16
16
|
$ superblocks (--version)
|
|
17
|
-
@superblocksteam/cli/2.0.3-next.
|
|
17
|
+
@superblocksteam/cli/2.0.3-next.154 linux-x64 node-v20.19.0
|
|
18
18
|
$ superblocks --help [COMMAND]
|
|
19
19
|
USAGE
|
|
20
20
|
$ superblocks COMMAND
|
|
@@ -60,7 +60,7 @@ var content9 = '# Superblocks theming\n\nSuperblocks apps are meant to be standa
|
|
|
60
60
|
|
|
61
61
|
// ../../../vite-plugin-file-sync/dist/ai-service/prompts/generated/subprompts/system.js
|
|
62
62
|
init_cjs_shims();
|
|
63
|
-
var content10 = 'You are Clark, an expert AI assistant and exceptional senior software developer with vast knowledge of the Superblocks framework.\nWhen talking always sign off with "Clark out"\n\n<system_constraints>\nTHINK HARD about the following very important system constraints:\n\n1. Git is NOT available\n2. You must use the Superblocks framework for all projects\n3. ALWAYS put all the generated code in the page/index.tsx file. ONLY create files for custom components. Do not use backticks like `\n4. ALWAYS destructure all needed Page1 entities at the top of the component function\n5. NEVER define helper functions inside or outside the component body. Instead, repeat code inline wherever it\'s needed (e.g., inside runJs() calls, sbComputed expressions, etc.). Code repetition is preferred over helper functions since helper functions are not editable in the UI.\n6. Only use sbComputed when referencing dynamic data (state variables, API responses, component values, or theme). Do NOT use sbComputed for static configuration like table columns, static dropdown options, or style objects that don\'t reference theme or dynamic values.\n7. NEVER use sbComputed as a child component. React cannot render the object type it returns as JSX children.\n\nThink hard about this: Always import ALL Superblocks library components and functions in the first line of Page files.\n\nExample of importing all Superblocks library components and functions:\n\n ```tsx\n import {\n SbPage,\n SbContainer,\n SbText,\n SbButton,\n SbTable,\n SbModal,\n SbInput,\n SbDropdown,\n SbCheckbox,\n SbDatePicker,\n SbSwitch,\n SbIcon,\n SbImage,\n Dim,\n type DimModes,\n sbComputed,\n SbEventFlow,\n SbVariable,\n SbVariablePersistence,\n SbTimer,\n registerPage,\n SbApi,\n Global,\n Theme,\n Embed,\n Env,\n } from "@superblocksteam/library";\n ```\n\nExample of NOT importing all Superblocks library components and functions. This is wrong:\n\n```tsx\nimport { SbPage } from "@superblocksteam/library";\n```\n\n</system_constraints>\n\n<code_formatting_info>\nUse 2 spaces for code indentation\n</code_formatting_info>\n\n<ui_styling_info>\n\n# Superblocks UI Styling Guide\n\nHow to make apps look good and be consistent:\n\n- All styling should be done using the Superblocks styling system. Components are styled by default using the appTheme.ts file to define the theme. You can modify this file.\n- If you need to style a component further, use the component\'s defined dedicated styling props (i.e. border, backgroundColor, etc) and reference theme variables where available. Access the theme by importing it: `import { Theme } from \'@superblocksteam/library\';`. Example: Theme.colors.primary500 resolves to the HEX value\n- Always look to use the theme values before reaching for something custom such as a color, font size, etc\n- Do not try to directly style the component with CSS using the style property\n- Do not use CSS at all to style components\n\n## Guidelines to easily making apps look good with less code\n\nThink hard about the following guidelines so you can create good looking apps:\n\n- ALWAYS use "vertical" or "horizontal" layouts for container components. Never anything else. Example: `<SbContainer layout="vertical">...` or `<SbContainer layout="horizontal">...`\n- When using a "vertical" or "horizontal" layout, always use the "spacing" prop to set the spacing between items unless you explicitly need the child components to touch each other\n- DO NOT add a margin to any component unless it\'s very clear you need to. Instead, rely on SBContainer components with "vertical" or "horizontal" layouts, using the spacing prop to set the spacing between items, and then use the verticalAlign and horizontalAlign props on the container component to align the items as needed. This is the best way to get nice layouts! Do not break this pattern unless it\'s an edge case.\n- When using padding on components, and especially on SBContainer components, always add equal padding to all sides unless you have a very good reason to do otherwise.\n- If using an SBTable component and the data has a small set of categorical values for one of the columns (like "status" or "type"), use the "tags" columnType property for that column\n- Some common components like SbTable have heading text built in. Rather than using a SbText component above these components, use the property on the component to get the heading text. Example: For SbTable, use the "tableHeader" property. If you absolutely must use an SbText component for a heading above these components that have built in heading text, make sure to clear the heading text by setting it to an empty string. But this should be rare.\n- Never try to javascript map over an array and return SBContainer components in an attempt to create a chart or graph. They are not designed for this.\n- When using input components for things like a search bar, use good placeholder text and usually remove the label by setting it to an empty string.\n- Prefer setting a theme border radius of 8px but always use the Dim type: `Dim.px(8)`\n- Always set the app theme\'s palette.light.appBackgroundColor to "#FFFFFF"\n- Always set the root SbContainer\'s height to Dim.fill(). Example: `<SbContainer height={Dim.fill()}>...`\n- SbModal components DO NOT need to have their own close button. The modal component comes with a close button by default.\n- Prefer "none" containerStyle for SbContainer components when just using them for layout purposes. Example: `<SbContainer containerStyle="none">...`. If you need to have nice padding and borders because you\'re using it as a "Card" or "Box" type container, then use the "card" containerStyle.\n\n### Company specific styling guidelines\n\n- If the company "Airwallex" is mentioned in the user\'s query, use #602FFF as the background color for application heading sections. Given this color is darker, make sure the text on top of it it white\n- If the company "Airwallex" is mentioned in the user\'s query, use the Airwallex logo from https://i.imgur.com/vWgvG58.png for the application\n </ui_styling_info>\n\n<interaction_design_info>\n\n# Interaction Design Guidelines\n\nThink hard about these guidelines to help you create apps with great user experiences, especially when working with interactive components like form controls, modals, etc.\n\n- When using dropdowns to filter data, unless the user asks for something different ALWAYS include an "All" option as the first option in the dropdown that would show all data for that field. Unless asked or there is good reason not to, this should be the default option for the dropdown\n </interaction_design_info>\n\n<mock_data_info>\nIf you\'re going to use mock data to fulfill a user\'s request, think hard about following these rules:\n\n1. For mock data, ALWAYS create a simple Superblocks API with one JavaScript step that returns the mock data instead of hardcoding it into variables, using Superblocks variables, or importing it from files. Only use alternative storage methods if the user explicitly requests it\n\nExample of using mock data:\n\nBelow is the Superblocks API you\'d create to return the mock data:\n\n```ts\n// Path to this api would be: /pages/Page1/apis/getOrders.ts\n\nimport { Api, JavaScript } from "@superblocksteam/library";\n\nexport default new Api("getOrders", [\n new JavaScript("returnMockOrders", {\n fn: () => {\n return [\n {\n id: "ORD-001",\n customerName: "John Smith",\n orderDate: "2024-01-15",\n total: 149.99,\n status: "Shipped",\n },\n {\n id: "ORD-002",\n customerName: "Sarah Jones",\n orderDate: "2024-01-14",\n total: 89.5,\n status: "Processing",\n },\n {\n id: "ORD-003",\n customerName: "Mike Wilson",\n orderDate: "2024-01-13",\n total: 299.99,\n status: "Delivered",\n },\n ];\n },\n }),\n]);\n```\n\nAnd this is the scope file and page registration:\n\n```ts\n// /pages/Page1/scope.ts\nimport { createSbScope, SbApi } from "@superblocksteam/library";\n\nexport const Page1Scope = createSbScope(\n () => ({\n getOrders: SbApi({}),\n }),\n {\n name: "Page1",\n },\n);\n\nexport const Page1 = Page1Scope.entities;\n```\n\n```tsx\n// /pages/Page1/index.tsx\nimport {\n SbPage,\n SbTable,\n sbComputed,\n registerPage,\n} from "@superblocksteam/library";\nimport { Page1, Page1Scope } from "./scope";\n\nconst MyPage = () => {\n const { getOrders } = Page1;\n\n return (\n <SbPage>\n <SbTable tableData={sbComputed(() => getOrders.response)} />\n </SbPage>\n );\n};\n\nexport default registerPage(MyPage, Page1Scope);\n```\n\n2. When using placeholder images, always use the following url format: https://placehold.co/{widthInteger}x{heightInteger}?text={urlEscapedText}\n\nExample: `https://placehold.co/600x400?text=Placeholder`\n\nUse more specific text if it\'s helpful, like "Chart placeholder".\n\n</mock_data_info>\n\n<message_formatting_info>\nYou can make the output pretty by using only the following available HTML elements: mdVar{{ALLOWED_HTML_ELEMENTS}}\n</message_formatting_info>\n\n<chain_of_thought_instructions>\nBefore providing a solution, BRIEFLY outline your implementation steps. This helps ensure systematic thinking and clear communication. Your planning should:\n\n- List concrete steps you\'ll take\n\n- Check if all the components you need are available in the <superblocks_components> section:\n\n 1. Prioritize the use of: SbButton, SbInput, SbCheckbox, SbContainer, SbDatePicker, SbDropdown, SbIcon, SbImage, SbModal, SbSection, SbSwitch, SbTable, SbText\n 2. IF AND ONLY IF a component cannot be created by combining these, ONLY THEN, AS A LAST RESORT use custom components.\n YOU WILL BE TERMINATED IMMEDIATELY if you create unnecessary custom components.\n\n- List Superblocks components and custom components you will be using\n- Note potential challenges\n- Be concise (2-4 lines maximum)\n\nExample responses:\n\nUser: "Create a todo list app with local storage"\nAssistant: "Sure. I\'ll start by:\n\n1. Create TodoList and TodoItem using the components available in the Superblocks library like SbTable and SbContainer\n2. Implement localStorage for persistence\n3. Add CRUD operations\n\nLet\'s start now.\n\n[Rest of response...]"\n\nUser: "Help debug why my API calls aren\'t working"\nAssistant: "Great. My first steps will be:\n\n1. Check network requests\n2. Verify API endpoint format\n3. Examine error handling\n\n[Rest of response...]"\n\nUser: "Generate an app with a header, table and filters. The filters should have a numeric slider and a dropdown."\nAssistant: "Sure:\n\n1. I will make a header component out of <SbContainer>, stacks, <SbText />.\n2. For the table, I will use SbTable. For filters, I will use SbDropdown.\n3. Since there is no slider component, I will create a custom component\n4. Implement filters\n\n[Rest of response...]"\n\n</chain_of_thought_instructions>\n\n<artifact_info>\nClark creates a SINGLE, comprehensive artifact for each project. The artifact contains all necessary steps and components.\n\n<artifact_instructions> 1. CRITICAL: Think HOLISTICALLY and COMPREHENSIVELY BEFORE creating an artifact. This means:\n\n - Consider ALL relevant files in the project\n - Review ALL previous file changes and user modifications\n - Analyze the entire project context and dependencies\n - Anticipate potential impacts on other parts of the system\n\n This holistic approach is ABSOLUTELY ESSENTIAL for creating coherent and effective solutions.\n\n 2. IMPORTANT: When receiving file modifications, ALWAYS use the latest file modifications and make any edits to the latest content of a file. This ensures that all changes are applied to the most up-to-date version of the file.\n\n 3. Wrap the content in opening and closing `<boltArtifact>` tags. These tags contain more specific `<boltAction>` elements.\n\n 4. Add a title for the artifact to the `title` attribute of the opening `<boltArtifact>`.\n\n 5. Add a unique identifier to the `id` attribute of the of the opening `<boltArtifact>`. For updates, reuse the prior identifier. The identifier should be descriptive and relevant to the content, using kebab-case (e.g., "example-code-snippet"). This identifier will be used consistently throughout the artifact\'s lifecycle, even when updating or iterating on the artifact.\n\n 6. Use `<boltAction>` tags to define specific actions to perform.\n\n 7. For each `<boltAction>`, add a type to the `type` attribute of the opening `<boltAction>` tag to specify the type of the action. Assign one of the following values to the `type` attribute:\n\n - file: For writing new files or updating existing files. For each file add a `filePath` attribute to the opening `<boltAction>` tag to specify the file path. The content of the file artifact is the file contents. All file paths MUST BE relative to the current working directory.\n\n 8. To cause npm dependencies to be installed, return an edited version of the package.json artifact you were provided. Always add the corresponding TypeScript definitions if you know them. If no package.json artifact was provided, you cannot add or remove dependencies.\n\n 9. ONLY remove package.json dependencies when at least one of the cases below is true:\n\n - The prompt explicitly asks for the dependency to be removed.\n - The provided diff shows that you had previously added the dependency and you want to revert or replace that dependency.\n\n 10. CRITICAL: Always provide the FULL, updated content of the artifact. This means:\n\n - Include ALL code, even if parts are unchanged\n - NEVER use placeholders like "// rest of the code remains the same..." or "<- leave original code here ->"\n - ALWAYS show the complete, up-to-date file contents when updating files\n - Avoid any form of truncation or summarization\n\n 11. IMPORTANT: Use coding best practices and split functionality into smaller modules instead of putting everything in a single gigantic file. Files should be as small as possible, and functionality should be extracted into separate modules when possible.\n\n - Ensure code is clean, readable, and maintainable.\n - Adhere to proper naming conventions and consistent formatting.\n - Split functionality into smaller, reusable modules instead of placing everything in a single large file.\n - Keep files as small as possible by extracting related functionalities into separate modules.\n - Use imports to connect these modules together effectively.\n\n</artifact_instructions>\n\n<superblocks_framework>\nmdVar{{SUPERBLOCKS_PARTS}}\n\n - A project consists of one or more pages. Each page is a directory in the `pages` directory.\n - Pages are registered in the `routes.json` file.\n\n</superblocks_framework>\n</artifact_info>\n\nNEVER use the word "artifact". For example:\n\n- DO NOT SAY: "This artifact sets up a simple Snake game using HTML, CSS, and JavaScript."\n- INSTEAD SAY: "We set up a simple Snake game using HTML, CSS, and JavaScript."\n\nIMPORTANT: Use valid markdown only for all your responses and DO NOT use HTML tags except for artifacts!\n\nULTRA IMPORTANT: Do NOT be verbose and DO NOT explain anything unless the user is asking for more information. That is VERY important.\n\nULTRA IMPORTANT: Think first and reply with the artifact that contains all necessary steps to set up the project, files, shell commands to run. It is SUPER IMPORTANT to respond with this first.\n\nHere are some examples of correct usage of artifacts:\n\n<examples>\n <example>\n <user_query>create an app with a button that opens a modal</user_query>\n <assistant_response>\n Certainly! I\'ll create an app with a button that opens a modal.\n\n <boltArtifact id="modal-app" title="Modal App">\n <boltAction type="file" filePath="package.json">{\n\n"name": "modal-app",\n"private": true,\n"sideEffects": false,\n"type": "module",\n"dependencies": {\n"@superblocksteam/library": "npm:@superblocksteam/library-ephemeral@mdVar{{LIBRARY_VERSION}}",\n\n},\n"devDependencies": {\n"@superblocksteam/cli": "npm:@superblocksteam/cli-ephemeral@mdVar{{CLI_VERSION}}",\n"@types/react": "^18.2.20",\n"@types/react-dom": "^18.2.7",\n"typescript": "^5.1.6"\n},\n}</boltAction>\n<boltAction type="file" filePath="pages/App.tsx">...</boltAction>\n<boltAction type="file" filePath="pages/app.css">...</boltAction>\n<boltAction type="file" filePath="pages/appTheme.ts">...</boltAction>\n<boltAction type="file" filePath="pages/root.tsx">...</boltAction>\n<boltAction type="file" filePath="pages/Page1/index.tsx">...</boltAction>\n<boltAction type="file" filePath="routes.json">...</boltAction>\n</boltArtifact>\n\n You can now view the modal app in the preview. The button will open the modal when clicked.\n </assistant_response>\n\n </example>\n</examples>\n';
|
|
63
|
+
var content10 = 'You are Clark, an expert AI assistant and exceptional senior software developer with vast knowledge of the Superblocks framework.\nWhen talking always sign off with "Clark out"\n\n<system_constraints>\nTHINK HARD about the following very important system constraints:\n\n1. Git is NOT available\n2. You must use the Superblocks framework for all projects\n3. ALWAYS put all the generated code in the page/index.tsx file. ONLY create files for custom components. Do not use backticks like `\n4. ALWAYS destructure all needed Page1 entities at the top of the component function\n5. NEVER define helper functions inside or outside the component body. Instead, repeat code inline wherever it\'s needed (e.g., inside runJs() calls, sbComputed expressions, etc.). Code repetition is preferred over helper functions since helper functions are not editable in the UI.\n6. Only use sbComputed when referencing dynamic data (state variables, API responses, component values, or theme). Do NOT use sbComputed for static configuration like table columns, static dropdown options, or style objects that don\'t reference theme or dynamic values.\n7. NEVER use sbComputed as a child component. React cannot render the object type it returns as JSX children.\n\nThink hard about this: Always import ALL Superblocks library components and functions in the first line of Page files.\n\nExample of importing all Superblocks library components and functions:\n\n ```tsx\n import {\n SbPage,\n SbContainer,\n SbText,\n SbButton,\n SbTable,\n SbModal,\n SbInput,\n SbDropdown,\n SbCheckbox,\n SbDatePicker,\n SbSwitch,\n SbIcon,\n SbImage,\n Dim,\n type DimModes,\n sbComputed,\n SbEventFlow,\n SbVariable,\n SbVariablePersistence,\n SbTimer,\n registerPage,\n SbApi,\n Global,\n Theme,\n Embed,\n Env,\n } from "@superblocksteam/library";\n ```\n\nExample of NOT importing all Superblocks library components and functions. This is wrong:\n\n```tsx\nimport { SbPage } from "@superblocksteam/library";\n```\n\n</system_constraints>\n\n<code_formatting_info>\nUse 2 spaces for code indentation\n</code_formatting_info>\n\n<ui_styling_info>\n\n# Superblocks UI Styling Guide\n\nHow to make apps look good and be consistent:\n\n- All styling should be done using the Superblocks styling system. Components are styled by default using the appTheme.ts file to define the theme. You can modify this file.\n- If you need to style a component further, use the component\'s defined dedicated styling props (i.e. border, backgroundColor, etc) and reference theme variables where available. Access the theme by importing it: `import { Theme } from \'@superblocksteam/library\';`. Example: Theme.colors.primary500 resolves to the HEX value\n- Always look to use the theme values before reaching for something custom such as a color, font size, etc\n- Do not try to directly style the component with CSS using the style property\n- Do not use CSS at all to style components\n\n## Guidelines to easily making apps look good with less code\n\nThink hard about the following guidelines so you can create good looking apps:\n\n- ALWAYS use "vertical" or "horizontal" layouts for container components. Never anything else. Example: `<SbContainer layout="vertical">...` or `<SbContainer layout="horizontal">...`\n- When using a "vertical" or "horizontal" layout, always use the "spacing" prop to set the spacing between items unless you explicitly need the child components to touch each other\n- DO NOT add a margin to any component unless it\'s very clear you need to. Instead, rely on SBContainer components with "vertical" or "horizontal" layouts, using the spacing prop to set the spacing between items, and then use the verticalAlign and horizontalAlign props on the container component to align the items as needed. This is the best way to get nice layouts! Do not break this pattern unless it\'s an edge case.\n- When using padding on components, and especially on SBContainer components, always add equal padding to all sides unless you have a very good reason to do otherwise.\n- If using an SBTable component and the data has a small set of categorical values for one of the columns (like "status" or "type"), use the "tags" columnType property for that column\n- Some common components like SbTable have heading text built in. Rather than using a SbText component above these components, use the property on the component to get the heading text. Example: For SbTable, use the "tableHeader" property. If you absolutely must use an SbText component for a heading above these components that have built in heading text, make sure to clear the heading text by setting it to an empty string. But this should be rare.\n- Never try to javascript map over an array and return SBContainer components in an attempt to create a chart or graph. They are not designed for this.\n- When using input components for things like a search bar, use good placeholder text and usually remove the label by setting it to an empty string.\n- Prefer setting a theme border radius of 8px but always use the Dim type: `Dim.px(8)`\n- Always set the app theme\'s palette.light.appBackgroundColor to "#FFFFFF"\n- Always set the root SbContainer\'s height to Dim.fill(). Example: `<SbContainer height={Dim.fill()}>...`\n- SbModal components DO NOT need to have their own close button. The modal component comes with a close button by default.\n- Prefer "none" containerStyle for SbContainer components when just using them for layout purposes. Example: `<SbContainer containerStyle="none">...`. If you need to have nice padding and borders because you\'re using it as a "Card" or "Box" type container, then use the "card" containerStyle.\n\n </ui_styling_info>\n\n<interaction_design_info>\n\n# Interaction Design Guidelines\n\nThink hard about these guidelines to help you create apps with great user experiences, especially when working with interactive components like form controls, modals, etc.\n\n- When using dropdowns to filter data, unless the user asks for something different ALWAYS include an "All" option as the first option in the dropdown that would show all data for that field. Unless asked or there is good reason not to, this should be the default option for the dropdown\n </interaction_design_info>\n\n<mock_data_info>\nIf you\'re going to use mock data to fulfill a user\'s request, think hard about following these rules:\n\n1. For mock data, ALWAYS create a simple Superblocks API with one JavaScript step that returns the mock data instead of hardcoding it into variables, using Superblocks variables, or importing it from files. Only use alternative storage methods if the user explicitly requests it\n\nExample of using mock data:\n\nBelow is the Superblocks API you\'d create to return the mock data:\n\n```ts\n// Path to this api would be: /pages/Page1/apis/getOrders.ts\n\nimport { Api, JavaScript } from "@superblocksteam/library";\n\nexport default new Api("getOrders", [\n new JavaScript("returnMockOrders", {\n fn: () => {\n return [\n {\n id: "ORD-001",\n customerName: "John Smith",\n orderDate: "2024-01-15",\n total: 149.99,\n status: "Shipped",\n },\n {\n id: "ORD-002",\n customerName: "Sarah Jones",\n orderDate: "2024-01-14",\n total: 89.5,\n status: "Processing",\n },\n {\n id: "ORD-003",\n customerName: "Mike Wilson",\n orderDate: "2024-01-13",\n total: 299.99,\n status: "Delivered",\n },\n ];\n },\n }),\n]);\n```\n\nAnd this is the scope file and page registration:\n\n```ts\n// /pages/Page1/scope.ts\nimport { createSbScope, SbApi } from "@superblocksteam/library";\n\nexport const Page1Scope = createSbScope(\n () => ({\n getOrders: SbApi({}),\n }),\n {\n name: "Page1",\n },\n);\n\nexport const Page1 = Page1Scope.entities;\n```\n\n```tsx\n// /pages/Page1/index.tsx\nimport {\n SbPage,\n SbTable,\n sbComputed,\n registerPage,\n} from "@superblocksteam/library";\nimport { Page1, Page1Scope } from "./scope";\n\nconst MyPage = () => {\n const { getOrders } = Page1;\n\n return (\n <SbPage>\n <SbTable tableData={sbComputed(() => getOrders.response)} />\n </SbPage>\n );\n};\n\nexport default registerPage(MyPage, Page1Scope);\n```\n\n2. When using placeholder images, always use the following url format: https://placehold.co/{widthInteger}x{heightInteger}?text={urlEscapedText}\n\nExample: `https://placehold.co/600x400?text=Placeholder`\n\nUse more specific text if it\'s helpful, like "Chart placeholder".\n\n</mock_data_info>\n\n<message_formatting_info>\nYou can make the output pretty by using only the following available HTML elements: mdVar{{ALLOWED_HTML_ELEMENTS}}\n</message_formatting_info>\n\n<chain_of_thought_instructions>\nBefore providing a solution, BRIEFLY outline your implementation steps. This helps ensure systematic thinking and clear communication. Your planning should:\n\n- List concrete steps you\'ll take\n\n- Check if all the components you need are available in the <superblocks_components> section:\n\n 1. Prioritize the use of: SbButton, SbInput, SbCheckbox, SbContainer, SbDatePicker, SbDropdown, SbIcon, SbImage, SbModal, SbSection, SbSwitch, SbTable, SbText\n 2. IF AND ONLY IF a component cannot be created by combining these, ONLY THEN, AS A LAST RESORT use custom components.\n YOU WILL BE TERMINATED IMMEDIATELY if you create unnecessary custom components.\n\n- List Superblocks components and custom components you will be using\n- Note potential challenges\n- Be concise (2-4 lines maximum)\n\nExample responses:\n\nUser: "Create a todo list app with local storage"\nAssistant: "Sure. I\'ll start by:\n\n1. Create TodoList and TodoItem using the components available in the Superblocks library like SbTable and SbContainer\n2. Implement localStorage for persistence\n3. Add CRUD operations\n\nLet\'s start now.\n\n[Rest of response...]"\n\nUser: "Help debug why my API calls aren\'t working"\nAssistant: "Great. My first steps will be:\n\n1. Check network requests\n2. Verify API endpoint format\n3. Examine error handling\n\n[Rest of response...]"\n\nUser: "Generate an app with a header, table and filters. The filters should have a numeric slider and a dropdown."\nAssistant: "Sure:\n\n1. I will make a header component out of <SbContainer>, stacks, <SbText />.\n2. For the table, I will use SbTable. For filters, I will use SbDropdown.\n3. Since there is no slider component, I will create a custom component\n4. Implement filters\n\n[Rest of response...]"\n\n</chain_of_thought_instructions>\n\n<artifact_info>\nClark creates a SINGLE, comprehensive artifact for each project. The artifact contains all necessary steps and components.\n\n<artifact_instructions> 1. CRITICAL: Think HOLISTICALLY and COMPREHENSIVELY BEFORE creating an artifact. This means:\n\n - Consider ALL relevant files in the project\n - Review ALL previous file changes and user modifications\n - Analyze the entire project context and dependencies\n - Anticipate potential impacts on other parts of the system\n\n This holistic approach is ABSOLUTELY ESSENTIAL for creating coherent and effective solutions.\n\n 2. IMPORTANT: When receiving file modifications, ALWAYS use the latest file modifications and make any edits to the latest content of a file. This ensures that all changes are applied to the most up-to-date version of the file.\n\n 3. Wrap the content in opening and closing `<boltArtifact>` tags. These tags contain more specific `<boltAction>` elements.\n\n 4. Add a title for the artifact to the `title` attribute of the opening `<boltArtifact>`.\n\n 5. Add a unique identifier to the `id` attribute of the of the opening `<boltArtifact>`. For updates, reuse the prior identifier. The identifier should be descriptive and relevant to the content, using kebab-case (e.g., "example-code-snippet"). This identifier will be used consistently throughout the artifact\'s lifecycle, even when updating or iterating on the artifact.\n\n 6. Use `<boltAction>` tags to define specific actions to perform.\n\n 7. For each `<boltAction>`, add a type to the `type` attribute of the opening `<boltAction>` tag to specify the type of the action. Assign one of the following values to the `type` attribute:\n\n - file: For writing new files or updating existing files. For each file add a `filePath` attribute to the opening `<boltAction>` tag to specify the file path. The content of the file artifact is the file contents. All file paths MUST BE relative to the current working directory.\n\n 8. To cause npm dependencies to be installed, return an edited version of the package.json artifact you were provided. Always add the corresponding TypeScript definitions if you know them. If no package.json artifact was provided, you cannot add or remove dependencies.\n\n 9. ONLY remove package.json dependencies when at least one of the cases below is true:\n\n - The prompt explicitly asks for the dependency to be removed.\n - The provided diff shows that you had previously added the dependency and you want to revert or replace that dependency.\n\n 10. CRITICAL: Always provide the FULL, updated content of the artifact. This means:\n\n - Include ALL code, even if parts are unchanged\n - NEVER use placeholders like "// rest of the code remains the same..." or "<- leave original code here ->"\n - ALWAYS show the complete, up-to-date file contents when updating files\n - Avoid any form of truncation or summarization\n\n 11. IMPORTANT: Use coding best practices and split functionality into smaller modules instead of putting everything in a single gigantic file. Files should be as small as possible, and functionality should be extracted into separate modules when possible.\n\n - Ensure code is clean, readable, and maintainable.\n - Adhere to proper naming conventions and consistent formatting.\n - Split functionality into smaller, reusable modules instead of placing everything in a single large file.\n - Keep files as small as possible by extracting related functionalities into separate modules.\n - Use imports to connect these modules together effectively.\n\n</artifact_instructions>\n\n<superblocks_framework>\nmdVar{{SUPERBLOCKS_PARTS}}\n\n - A project consists of one or more pages. Each page is a directory in the `pages` directory.\n - Pages are registered in the `routes.json` file.\n\n</superblocks_framework>\n</artifact_info>\n\nNEVER use the word "artifact". For example:\n\n- DO NOT SAY: "This artifact sets up a simple Snake game using HTML, CSS, and JavaScript."\n- INSTEAD SAY: "We set up a simple Snake game using HTML, CSS, and JavaScript."\n\nIMPORTANT: Use valid markdown only for all your responses and DO NOT use HTML tags except for artifacts!\n\nULTRA IMPORTANT: Do NOT be verbose and DO NOT explain anything unless the user is asking for more information. That is VERY important.\n\nULTRA IMPORTANT: Think first and reply with the artifact that contains all necessary steps to set up the project, files, shell commands to run. It is SUPER IMPORTANT to respond with this first.\n\nHere are some examples of correct usage of artifacts:\n\n<examples>\n <example>\n <user_query>create an app with a button that opens a modal</user_query>\n <assistant_response>\n Certainly! I\'ll create an app with a button that opens a modal.\n\n <boltArtifact id="modal-app" title="Modal App">\n <boltAction type="file" filePath="package.json">{\n\n"name": "modal-app",\n"private": true,\n"sideEffects": false,\n"type": "module",\n"dependencies": {\n"@superblocksteam/library": "npm:@superblocksteam/library-ephemeral@mdVar{{LIBRARY_VERSION}}",\n\n},\n"devDependencies": {\n"@superblocksteam/cli": "npm:@superblocksteam/cli-ephemeral@mdVar{{CLI_VERSION}}",\n"@types/react": "^18.2.20",\n"@types/react-dom": "^18.2.7",\n"typescript": "^5.1.6"\n},\n}</boltAction>\n<boltAction type="file" filePath="pages/App.tsx">...</boltAction>\n<boltAction type="file" filePath="pages/app.css">...</boltAction>\n<boltAction type="file" filePath="pages/appTheme.ts">...</boltAction>\n<boltAction type="file" filePath="pages/root.tsx">...</boltAction>\n<boltAction type="file" filePath="pages/Page1/index.tsx">...</boltAction>\n<boltAction type="file" filePath="routes.json">...</boltAction>\n</boltArtifact>\n\n You can now view the modal app in the preview. The button will open the modal when clicked.\n </assistant_response>\n\n </example>\n</examples>\n';
|
|
64
64
|
|
|
65
65
|
// ../../../vite-plugin-file-sync/dist/ai-service/prompts/generated/library-components/index.js
|
|
66
66
|
var library_components_exports = {};
|
package/dist/index.js
CHANGED
|
@@ -12508,10 +12508,10 @@ var require_axios = __commonJS({
|
|
|
12508
12508
|
}
|
|
12509
12509
|
return null;
|
|
12510
12510
|
}
|
|
12511
|
-
function stringifySafely2(rawValue,
|
|
12511
|
+
function stringifySafely2(rawValue, parser10, encoder) {
|
|
12512
12512
|
if (utils$1.isString(rawValue)) {
|
|
12513
12513
|
try {
|
|
12514
|
-
(
|
|
12514
|
+
(parser10 || JSON.parse)(rawValue);
|
|
12515
12515
|
return utils$1.trim(rawValue);
|
|
12516
12516
|
} catch (e) {
|
|
12517
12517
|
if (e.name !== "SyntaxError") {
|
|
@@ -12639,7 +12639,7 @@ var require_axios = __commonJS({
|
|
|
12639
12639
|
let key2;
|
|
12640
12640
|
let val;
|
|
12641
12641
|
let i2;
|
|
12642
|
-
rawHeaders && rawHeaders.split("\n").forEach(function
|
|
12642
|
+
rawHeaders && rawHeaders.split("\n").forEach(function parser10(line3) {
|
|
12643
12643
|
i2 = line3.indexOf(":");
|
|
12644
12644
|
key2 = line3.substring(0, i2).trim().toLowerCase();
|
|
12645
12645
|
val = line3.substring(i2 + 1).trim();
|
|
@@ -12739,23 +12739,23 @@ var require_axios = __commonJS({
|
|
|
12739
12739
|
}
|
|
12740
12740
|
return this;
|
|
12741
12741
|
}
|
|
12742
|
-
get(header,
|
|
12742
|
+
get(header, parser10) {
|
|
12743
12743
|
header = normalizeHeader2(header);
|
|
12744
12744
|
if (header) {
|
|
12745
12745
|
const key2 = utils$1.findKey(this, header);
|
|
12746
12746
|
if (key2) {
|
|
12747
12747
|
const value2 = this[key2];
|
|
12748
|
-
if (!
|
|
12748
|
+
if (!parser10) {
|
|
12749
12749
|
return value2;
|
|
12750
12750
|
}
|
|
12751
|
-
if (
|
|
12751
|
+
if (parser10 === true) {
|
|
12752
12752
|
return parseTokens2(value2);
|
|
12753
12753
|
}
|
|
12754
|
-
if (utils$1.isFunction(
|
|
12755
|
-
return
|
|
12754
|
+
if (utils$1.isFunction(parser10)) {
|
|
12755
|
+
return parser10.call(this, value2, key2);
|
|
12756
12756
|
}
|
|
12757
|
-
if (utils$1.isRegExp(
|
|
12758
|
-
return
|
|
12757
|
+
if (utils$1.isRegExp(parser10)) {
|
|
12758
|
+
return parser10.exec(value2);
|
|
12759
12759
|
}
|
|
12760
12760
|
throw new TypeError("parser must be boolean|regexp|function");
|
|
12761
12761
|
}
|
|
@@ -55817,8 +55817,8 @@ var require_evaluation = __commonJS({
|
|
|
55817
55817
|
};
|
|
55818
55818
|
};
|
|
55819
55819
|
exports2.extractEntity = extractEntity2;
|
|
55820
|
-
var extractPythonEvaluationPairsWithParser2 = (code, entities, dataTree,
|
|
55821
|
-
const tree =
|
|
55820
|
+
var extractPythonEvaluationPairsWithParser2 = (code, entities, dataTree, parser10, namespacedEntitiesToExtract = {}) => {
|
|
55821
|
+
const tree = parser10.parse(code);
|
|
55822
55822
|
const cursor3 = tree.cursor();
|
|
55823
55823
|
let isCapturing = false;
|
|
55824
55824
|
const bindingPairs = [];
|
|
@@ -123124,9 +123124,9 @@ var require_graphql2 = __commonJS({
|
|
|
123124
123124
|
shimmer.wrap(execute, "execute", wrapExecute(execute));
|
|
123125
123125
|
return execute;
|
|
123126
123126
|
});
|
|
123127
|
-
addHook({ name: "graphql", file: "language/parser.js", versions: [">=0.10"] }, (
|
|
123128
|
-
shimmer.wrap(
|
|
123129
|
-
return
|
|
123127
|
+
addHook({ name: "graphql", file: "language/parser.js", versions: [">=0.10"] }, (parser10) => {
|
|
123128
|
+
shimmer.wrap(parser10, "parse", wrapParse);
|
|
123129
|
+
return parser10;
|
|
123130
123130
|
});
|
|
123131
123131
|
addHook({ name: "graphql", file: "validation/validate.js", versions: [">=0.10"] }, (validate2) => {
|
|
123132
123132
|
shimmer.wrap(validate2, "validate", wrapValidate);
|
|
@@ -196901,7 +196901,7 @@ var require_urlencoded = __commonJS({
|
|
|
196901
196901
|
function extendedparser(options8) {
|
|
196902
196902
|
var parameterLimit = options8.parameterLimit !== void 0 ? options8.parameterLimit : 1e3;
|
|
196903
196903
|
var depth = typeof options8.depth !== "number" ? Number(options8.depth || 32) : options8.depth;
|
|
196904
|
-
var parse12 =
|
|
196904
|
+
var parse12 = parser10("qs");
|
|
196905
196905
|
if (isNaN(parameterLimit) || parameterLimit < 1) {
|
|
196906
196906
|
throw new TypeError("option parameterLimit must be a positive number");
|
|
196907
196907
|
}
|
|
@@ -196959,7 +196959,7 @@ var require_urlencoded = __commonJS({
|
|
|
196959
196959
|
}
|
|
196960
196960
|
return count;
|
|
196961
196961
|
}
|
|
196962
|
-
function
|
|
196962
|
+
function parser10(name17) {
|
|
196963
196963
|
var mod2 = parsers13[name17];
|
|
196964
196964
|
if (mod2 !== void 0) {
|
|
196965
196965
|
return mod2.parse;
|
|
@@ -196977,7 +196977,7 @@ var require_urlencoded = __commonJS({
|
|
|
196977
196977
|
}
|
|
196978
196978
|
function simpleparser(options8) {
|
|
196979
196979
|
var parameterLimit = options8.parameterLimit !== void 0 ? options8.parameterLimit : 1e3;
|
|
196980
|
-
var parse12 =
|
|
196980
|
+
var parse12 = parser10("querystring");
|
|
196981
196981
|
if (isNaN(parameterLimit) || parameterLimit < 1) {
|
|
196982
196982
|
throw new TypeError("option parameterLimit must be a positive number");
|
|
196983
196983
|
}
|
|
@@ -197060,25 +197060,25 @@ var require_body_parser2 = __commonJS({
|
|
|
197060
197060
|
};
|
|
197061
197061
|
}
|
|
197062
197062
|
function loadParser(parserName) {
|
|
197063
|
-
var
|
|
197064
|
-
if (
|
|
197065
|
-
return
|
|
197063
|
+
var parser10 = parsers13[parserName];
|
|
197064
|
+
if (parser10 !== void 0) {
|
|
197065
|
+
return parser10;
|
|
197066
197066
|
}
|
|
197067
197067
|
switch (parserName) {
|
|
197068
197068
|
case "json":
|
|
197069
|
-
|
|
197069
|
+
parser10 = require_json3();
|
|
197070
197070
|
break;
|
|
197071
197071
|
case "raw":
|
|
197072
|
-
|
|
197072
|
+
parser10 = require_raw();
|
|
197073
197073
|
break;
|
|
197074
197074
|
case "text":
|
|
197075
|
-
|
|
197075
|
+
parser10 = require_text2();
|
|
197076
197076
|
break;
|
|
197077
197077
|
case "urlencoded":
|
|
197078
|
-
|
|
197078
|
+
parser10 = require_urlencoded();
|
|
197079
197079
|
break;
|
|
197080
197080
|
}
|
|
197081
|
-
return parsers13[parserName] =
|
|
197081
|
+
return parsers13[parserName] = parser10;
|
|
197082
197082
|
}
|
|
197083
197083
|
})(...arguments);
|
|
197084
197084
|
{
|
|
@@ -201589,8 +201589,8 @@ var require_evaluation2 = __commonJS({
|
|
|
201589
201589
|
};
|
|
201590
201590
|
};
|
|
201591
201591
|
exports2.extractEntity = extractEntity2;
|
|
201592
|
-
var extractPythonEvaluationPairsWithParser2 = (code, entities, dataTree,
|
|
201593
|
-
const tree =
|
|
201592
|
+
var extractPythonEvaluationPairsWithParser2 = (code, entities, dataTree, parser10, namespacedEntitiesToExtract = {}) => {
|
|
201593
|
+
const tree = parser10.parse(code);
|
|
201594
201594
|
const cursor3 = tree.cursor();
|
|
201595
201595
|
let isCapturing = false;
|
|
201596
201596
|
const bindingPairs = [];
|
|
@@ -225759,22 +225759,22 @@ var require_esprima = __commonJS({
|
|
|
225759
225759
|
if (options8 && typeof options8.sourceType === "string") {
|
|
225760
225760
|
isModule = options8.sourceType === "module";
|
|
225761
225761
|
}
|
|
225762
|
-
var
|
|
225762
|
+
var parser10;
|
|
225763
225763
|
if (options8 && typeof options8.jsx === "boolean" && options8.jsx) {
|
|
225764
|
-
|
|
225764
|
+
parser10 = new jsx_parser_1.JSXParser(code, options8, parserDelegate);
|
|
225765
225765
|
} else {
|
|
225766
|
-
|
|
225766
|
+
parser10 = new parser_1.Parser(code, options8, parserDelegate);
|
|
225767
225767
|
}
|
|
225768
|
-
var program = isModule ?
|
|
225768
|
+
var program = isModule ? parser10.parseModule() : parser10.parseScript();
|
|
225769
225769
|
var ast = program;
|
|
225770
225770
|
if (collectComment && commentHandler) {
|
|
225771
225771
|
ast.comments = commentHandler.comments;
|
|
225772
225772
|
}
|
|
225773
|
-
if (
|
|
225774
|
-
ast.tokens =
|
|
225773
|
+
if (parser10.config.tokens) {
|
|
225774
|
+
ast.tokens = parser10.tokens;
|
|
225775
225775
|
}
|
|
225776
|
-
if (
|
|
225777
|
-
ast.errors =
|
|
225776
|
+
if (parser10.config.tolerant) {
|
|
225777
|
+
ast.errors = parser10.errorHandler.errors;
|
|
225778
225778
|
}
|
|
225779
225779
|
return ast;
|
|
225780
225780
|
}
|
|
@@ -233383,12 +233383,12 @@ var require_lib8 = __commonJS({
|
|
|
233383
233383
|
}
|
|
233384
233384
|
};
|
|
233385
233385
|
var ScopeHandler = class {
|
|
233386
|
-
constructor(
|
|
233386
|
+
constructor(parser10, inModule) {
|
|
233387
233387
|
this.parser = void 0;
|
|
233388
233388
|
this.scopeStack = [];
|
|
233389
233389
|
this.inModule = void 0;
|
|
233390
233390
|
this.undefinedExports = /* @__PURE__ */ new Map();
|
|
233391
|
-
this.parser =
|
|
233391
|
+
this.parser = parser10;
|
|
233392
233392
|
this.inModule = inModule;
|
|
233393
233393
|
}
|
|
233394
233394
|
get inTopLevel() {
|
|
@@ -235312,11 +235312,11 @@ var require_lib8 = __commonJS({
|
|
|
235312
235312
|
}
|
|
235313
235313
|
};
|
|
235314
235314
|
var ClassScopeHandler = class {
|
|
235315
|
-
constructor(
|
|
235315
|
+
constructor(parser10) {
|
|
235316
235316
|
this.parser = void 0;
|
|
235317
235317
|
this.stack = [];
|
|
235318
235318
|
this.undefinedPrivateNames = /* @__PURE__ */ new Map();
|
|
235319
|
-
this.parser =
|
|
235319
|
+
this.parser = parser10;
|
|
235320
235320
|
}
|
|
235321
235321
|
current() {
|
|
235322
235322
|
return this.stack[this.stack.length - 1];
|
|
@@ -235409,10 +235409,10 @@ var require_lib8 = __commonJS({
|
|
|
235409
235409
|
}
|
|
235410
235410
|
};
|
|
235411
235411
|
var ExpressionScopeHandler = class {
|
|
235412
|
-
constructor(
|
|
235412
|
+
constructor(parser10) {
|
|
235413
235413
|
this.parser = void 0;
|
|
235414
235414
|
this.stack = [new ExpressionScope()];
|
|
235415
|
-
this.parser =
|
|
235415
|
+
this.parser = parser10;
|
|
235416
235416
|
}
|
|
235417
235417
|
enter(scope) {
|
|
235418
235418
|
this.stack.push(scope);
|
|
@@ -235739,13 +235739,13 @@ var require_lib8 = __commonJS({
|
|
|
235739
235739
|
}
|
|
235740
235740
|
};
|
|
235741
235741
|
var Node = class {
|
|
235742
|
-
constructor(
|
|
235742
|
+
constructor(parser10, pos2, loc) {
|
|
235743
235743
|
this.type = "";
|
|
235744
235744
|
this.start = pos2;
|
|
235745
235745
|
this.end = 0;
|
|
235746
235746
|
this.loc = new SourceLocation(loc);
|
|
235747
|
-
if ((
|
|
235748
|
-
if (
|
|
235747
|
+
if ((parser10 == null ? void 0 : parser10.optionFlags) & 64) this.range = [pos2, 0];
|
|
235748
|
+
if (parser10 != null && parser10.filename) this.loc.filename = parser10.filename;
|
|
235749
235749
|
}
|
|
235750
235750
|
};
|
|
235751
235751
|
var NodePrototype = Node.prototype;
|
|
@@ -246030,12 +246030,12 @@ var require_lib8 = __commonJS({
|
|
|
246030
246030
|
options8 = Object.assign({}, options8);
|
|
246031
246031
|
try {
|
|
246032
246032
|
options8.sourceType = "module";
|
|
246033
|
-
const
|
|
246034
|
-
const ast =
|
|
246035
|
-
if (
|
|
246033
|
+
const parser10 = getParser2(options8, input);
|
|
246034
|
+
const ast = parser10.parse();
|
|
246035
|
+
if (parser10.sawUnambiguousESM) {
|
|
246036
246036
|
return ast;
|
|
246037
246037
|
}
|
|
246038
|
-
if (
|
|
246038
|
+
if (parser10.ambiguousScriptDifferentAst) {
|
|
246039
246039
|
try {
|
|
246040
246040
|
options8.sourceType = "script";
|
|
246041
246041
|
return getParser2(options8, input).parse();
|
|
@@ -246058,11 +246058,11 @@ var require_lib8 = __commonJS({
|
|
|
246058
246058
|
}
|
|
246059
246059
|
}
|
|
246060
246060
|
function parseExpression2(input, options8) {
|
|
246061
|
-
const
|
|
246062
|
-
if (
|
|
246063
|
-
|
|
246061
|
+
const parser10 = getParser2(options8, input);
|
|
246062
|
+
if (parser10.options.strictMode) {
|
|
246063
|
+
parser10.state.strict = true;
|
|
246064
246064
|
}
|
|
246065
|
-
return
|
|
246065
|
+
return parser10.getExpression();
|
|
246066
246066
|
}
|
|
246067
246067
|
function generateExportedTokenTypes(internalTokenTypes) {
|
|
246068
246068
|
const tokenTypes2 = {};
|
|
@@ -273653,7 +273653,7 @@ var require_options = __commonJS({
|
|
|
273653
273653
|
placeholderPattern,
|
|
273654
273654
|
preserveComments,
|
|
273655
273655
|
syntacticPlaceholders
|
|
273656
|
-
} = _ref,
|
|
273656
|
+
} = _ref, parser10 = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
273657
273657
|
if (placeholderWhitelist != null && !(placeholderWhitelist instanceof Set)) {
|
|
273658
273658
|
throw new Error("'.placeholderWhitelist' must be a Set, null, or undefined");
|
|
273659
273659
|
}
|
|
@@ -273670,7 +273670,7 @@ var require_options = __commonJS({
|
|
|
273670
273670
|
throw new Error("'.placeholderWhitelist' and '.placeholderPattern' aren't compatible with '.syntacticPlaceholders: true'");
|
|
273671
273671
|
}
|
|
273672
273672
|
return {
|
|
273673
|
-
parser:
|
|
273673
|
+
parser: parser10,
|
|
273674
273674
|
placeholderWhitelist: placeholderWhitelist || void 0,
|
|
273675
273675
|
placeholderPattern: placeholderPattern == null ? void 0 : placeholderPattern,
|
|
273676
273676
|
preserveComments: preserveComments == null ? void 0 : preserveComments,
|
|
@@ -289395,7 +289395,7 @@ var require_parser2 = __commonJS({
|
|
|
289395
289395
|
Object.defineProperty(exports2, "__esModule", {
|
|
289396
289396
|
value: true
|
|
289397
289397
|
});
|
|
289398
|
-
exports2.default =
|
|
289398
|
+
exports2.default = parser10;
|
|
289399
289399
|
function _parser() {
|
|
289400
289400
|
const data = require_lib8();
|
|
289401
289401
|
_parser = function() {
|
|
@@ -289411,7 +289411,7 @@ var require_parser2 = __commonJS({
|
|
|
289411
289411
|
return data;
|
|
289412
289412
|
}
|
|
289413
289413
|
var _missingPluginHelper = require_missing_plugin_helper();
|
|
289414
|
-
function*
|
|
289414
|
+
function* parser10(pluginPasses, {
|
|
289415
289415
|
parserOpts,
|
|
289416
289416
|
highlightCode = true,
|
|
289417
289417
|
filename = "unknown"
|
|
@@ -312041,8 +312041,8 @@ var require_fecha_umd = __commonJS({
|
|
|
312041
312041
|
}
|
|
312042
312042
|
var combinedI18nSettings = assign(assign({}, globalI18n), i18n);
|
|
312043
312043
|
for (var i2 = 1; i2 < matches.length; i2++) {
|
|
312044
|
-
var _a17 = parseInfo[i2 - 1], field = _a17[0],
|
|
312045
|
-
var value2 =
|
|
312044
|
+
var _a17 = parseInfo[i2 - 1], field = _a17[0], parser10 = _a17[2];
|
|
312045
|
+
var value2 = parser10 ? parser10(matches[i2], combinedI18nSettings) : +matches[i2];
|
|
312046
312046
|
if (value2 == null) {
|
|
312047
312047
|
return null;
|
|
312048
312048
|
}
|
|
@@ -321523,10 +321523,10 @@ function formDataToJSON(formData) {
|
|
|
321523
321523
|
var formDataToJSON_default = formDataToJSON;
|
|
321524
321524
|
|
|
321525
321525
|
// ../../../../node_modules/.pnpm/axios@1.8.4_debug@4.4.0/node_modules/axios/lib/defaults/index.js
|
|
321526
|
-
function stringifySafely(rawValue,
|
|
321526
|
+
function stringifySafely(rawValue, parser10, encoder) {
|
|
321527
321527
|
if (utils_default.isString(rawValue)) {
|
|
321528
321528
|
try {
|
|
321529
|
-
(
|
|
321529
|
+
(parser10 || JSON.parse)(rawValue);
|
|
321530
321530
|
return utils_default.trim(rawValue);
|
|
321531
321531
|
} catch (e) {
|
|
321532
321532
|
if (e.name !== "SyntaxError") {
|
|
@@ -321660,7 +321660,7 @@ var parseHeaders_default = (rawHeaders) => {
|
|
|
321660
321660
|
let key2;
|
|
321661
321661
|
let val;
|
|
321662
321662
|
let i2;
|
|
321663
|
-
rawHeaders && rawHeaders.split("\n").forEach(function
|
|
321663
|
+
rawHeaders && rawHeaders.split("\n").forEach(function parser10(line3) {
|
|
321664
321664
|
i2 = line3.indexOf(":");
|
|
321665
321665
|
key2 = line3.substring(0, i2).trim().toLowerCase();
|
|
321666
321666
|
val = line3.substring(i2 + 1).trim();
|
|
@@ -321762,23 +321762,23 @@ var AxiosHeaders = class {
|
|
|
321762
321762
|
}
|
|
321763
321763
|
return this;
|
|
321764
321764
|
}
|
|
321765
|
-
get(header,
|
|
321765
|
+
get(header, parser10) {
|
|
321766
321766
|
header = normalizeHeader(header);
|
|
321767
321767
|
if (header) {
|
|
321768
321768
|
const key2 = utils_default.findKey(this, header);
|
|
321769
321769
|
if (key2) {
|
|
321770
321770
|
const value2 = this[key2];
|
|
321771
|
-
if (!
|
|
321771
|
+
if (!parser10) {
|
|
321772
321772
|
return value2;
|
|
321773
321773
|
}
|
|
321774
|
-
if (
|
|
321774
|
+
if (parser10 === true) {
|
|
321775
321775
|
return parseTokens(value2);
|
|
321776
321776
|
}
|
|
321777
|
-
if (utils_default.isFunction(
|
|
321778
|
-
return
|
|
321777
|
+
if (utils_default.isFunction(parser10)) {
|
|
321778
|
+
return parser10.call(this, value2, key2);
|
|
321779
321779
|
}
|
|
321780
|
-
if (utils_default.isRegExp(
|
|
321781
|
-
return
|
|
321780
|
+
if (utils_default.isRegExp(parser10)) {
|
|
321781
|
+
return parser10.exec(value2);
|
|
321782
321782
|
}
|
|
321783
321783
|
throw new TypeError("parser must be boolean|regexp|function");
|
|
321784
321784
|
}
|
|
@@ -331222,7 +331222,7 @@ var import_dd_trace = __toESM(require_dd_trace2(), 1);
|
|
|
331222
331222
|
// ../sdk/package.json
|
|
331223
331223
|
var package_default = {
|
|
331224
331224
|
name: "@superblocksteam/sdk",
|
|
331225
|
-
version: "2.0.3-next.
|
|
331225
|
+
version: "2.0.3-next.154",
|
|
331226
331226
|
type: "module",
|
|
331227
331227
|
description: "Superblocks JS SDK",
|
|
331228
331228
|
homepage: "https://www.superblocks.com",
|
|
@@ -331252,8 +331252,8 @@ var package_default = {
|
|
|
331252
331252
|
"@rollup/wasm-node": "^4.35.0",
|
|
331253
331253
|
"@superblocksteam/bucketeer-sdk": "0.4.1",
|
|
331254
331254
|
"@superblocksteam/shared": "0.9115.0",
|
|
331255
|
-
"@superblocksteam/util": "2.0.3-next.
|
|
331256
|
-
"@superblocksteam/vite-plugin-file-sync": "2.0.3-next.
|
|
331255
|
+
"@superblocksteam/util": "2.0.3-next.154",
|
|
331256
|
+
"@superblocksteam/vite-plugin-file-sync": "2.0.3-next.154",
|
|
331257
331257
|
"@vitejs/plugin-react": "^4.3.4",
|
|
331258
331258
|
axios: "^1.4.0",
|
|
331259
331259
|
chokidar: "^4.0.3",
|
|
@@ -331408,9 +331408,18 @@ var Property = {
|
|
|
331408
331408
|
function isPropertyInfo(value2) {
|
|
331409
331409
|
return typeof value2 === "object" && value2 !== null && "__info" in value2 && value2.__info === true;
|
|
331410
331410
|
}
|
|
331411
|
+
function isComputedPropertyInfo(value2) {
|
|
331412
|
+
return isPropertyInfo(value2) && value2.type === "COMPUTED";
|
|
331413
|
+
}
|
|
331411
331414
|
|
|
331412
331415
|
// ../../../library-shared/dist/utils/strings.js
|
|
331413
331416
|
init_cjs_shims();
|
|
331417
|
+
function containsStringInterpolation(value2) {
|
|
331418
|
+
if (typeof value2 === "string") {
|
|
331419
|
+
return /\${\s*[^}]+\s*}/.test(value2);
|
|
331420
|
+
}
|
|
331421
|
+
return false;
|
|
331422
|
+
}
|
|
331414
331423
|
|
|
331415
331424
|
// ../../../library-shared/dist/layout.js
|
|
331416
331425
|
init_cjs_shims();
|
|
@@ -331920,10 +331929,10 @@ NodeProp.contextHash = new NodeProp({ perNode: true });
|
|
|
331920
331929
|
NodeProp.lookAhead = new NodeProp({ perNode: true });
|
|
331921
331930
|
NodeProp.mounted = new NodeProp({ perNode: true });
|
|
331922
331931
|
var MountedTree = class {
|
|
331923
|
-
constructor(tree, overlay,
|
|
331932
|
+
constructor(tree, overlay, parser10) {
|
|
331924
331933
|
this.tree = tree;
|
|
331925
331934
|
this.overlay = overlay;
|
|
331926
|
-
this.parser =
|
|
331935
|
+
this.parser = parser10;
|
|
331927
331936
|
}
|
|
331928
331937
|
/**
|
|
331929
331938
|
@internal
|
|
@@ -333458,16 +333467,16 @@ var Stack = class _Stack {
|
|
|
333458
333467
|
reduce(action) {
|
|
333459
333468
|
var _a17;
|
|
333460
333469
|
let depth = action >> 19, type2 = action & 65535;
|
|
333461
|
-
let { parser:
|
|
333470
|
+
let { parser: parser10 } = this.p;
|
|
333462
333471
|
let lookaheadRecord = this.reducePos < this.pos - 25;
|
|
333463
333472
|
if (lookaheadRecord)
|
|
333464
333473
|
this.setLookAhead(this.pos);
|
|
333465
|
-
let dPrec =
|
|
333474
|
+
let dPrec = parser10.dynamicPrecedence(type2);
|
|
333466
333475
|
if (dPrec)
|
|
333467
333476
|
this.score += dPrec;
|
|
333468
333477
|
if (depth == 0) {
|
|
333469
|
-
this.pushState(
|
|
333470
|
-
if (type2 <
|
|
333478
|
+
this.pushState(parser10.getGoto(this.state, type2, true), this.reducePos);
|
|
333479
|
+
if (type2 < parser10.minRepeatTerm)
|
|
333471
333480
|
this.storeNode(type2, this.reducePos, this.reducePos, lookaheadRecord ? 8 : 4, true);
|
|
333472
333481
|
this.reduceContext(type2, this.reducePos);
|
|
333473
333482
|
return;
|
|
@@ -333485,8 +333494,8 @@ var Stack = class _Stack {
|
|
|
333485
333494
|
}
|
|
333486
333495
|
}
|
|
333487
333496
|
let bufferBase = base ? this.stack[base - 1] : 0, count = this.bufferBase + this.buffer.length - bufferBase;
|
|
333488
|
-
if (type2 <
|
|
333489
|
-
let pos2 =
|
|
333497
|
+
if (type2 < parser10.minRepeatTerm || action & 131072) {
|
|
333498
|
+
let pos2 = parser10.stateFlag(
|
|
333490
333499
|
this.state,
|
|
333491
333500
|
1
|
|
333492
333501
|
/* StateFlag.Skipped */
|
|
@@ -333497,7 +333506,7 @@ var Stack = class _Stack {
|
|
|
333497
333506
|
this.state = this.stack[base];
|
|
333498
333507
|
} else {
|
|
333499
333508
|
let baseStateID = this.stack[base - 3];
|
|
333500
|
-
this.state =
|
|
333509
|
+
this.state = parser10.getGoto(baseStateID, type2, true);
|
|
333501
333510
|
}
|
|
333502
333511
|
while (this.stack.length > base)
|
|
333503
333512
|
this.stack.pop();
|
|
@@ -333560,10 +333569,10 @@ var Stack = class _Stack {
|
|
|
333560
333569
|
if (action & 131072) {
|
|
333561
333570
|
this.pushState(action & 65535, this.pos);
|
|
333562
333571
|
} else if ((action & 262144) == 0) {
|
|
333563
|
-
let nextState = action, { parser:
|
|
333564
|
-
if (end > this.pos || type2 <=
|
|
333572
|
+
let nextState = action, { parser: parser10 } = this.p;
|
|
333573
|
+
if (end > this.pos || type2 <= parser10.maxNode) {
|
|
333565
333574
|
this.pos = end;
|
|
333566
|
-
if (!
|
|
333575
|
+
if (!parser10.stateFlag(
|
|
333567
333576
|
nextState,
|
|
333568
333577
|
1
|
|
333569
333578
|
/* StateFlag.Skipped */
|
|
@@ -333572,7 +333581,7 @@ var Stack = class _Stack {
|
|
|
333572
333581
|
}
|
|
333573
333582
|
this.pushState(nextState, start);
|
|
333574
333583
|
this.shiftContext(type2, start);
|
|
333575
|
-
if (type2 <=
|
|
333584
|
+
if (type2 <= parser10.maxNode)
|
|
333576
333585
|
this.buffer.push(type2, start, end, 4);
|
|
333577
333586
|
} else {
|
|
333578
333587
|
this.pos = end;
|
|
@@ -333706,18 +333715,18 @@ var Stack = class _Stack {
|
|
|
333706
333715
|
@internal
|
|
333707
333716
|
*/
|
|
333708
333717
|
forceReduce() {
|
|
333709
|
-
let { parser:
|
|
333710
|
-
let reduce =
|
|
333718
|
+
let { parser: parser10 } = this.p;
|
|
333719
|
+
let reduce = parser10.stateSlot(
|
|
333711
333720
|
this.state,
|
|
333712
333721
|
5
|
|
333713
333722
|
/* ParseState.ForcedReduce */
|
|
333714
333723
|
);
|
|
333715
333724
|
if ((reduce & 65536) == 0)
|
|
333716
333725
|
return false;
|
|
333717
|
-
if (!
|
|
333726
|
+
if (!parser10.validAction(this.state, reduce)) {
|
|
333718
333727
|
let depth = reduce >> 19, term = reduce & 65535;
|
|
333719
333728
|
let target = this.stack.length - depth * 3;
|
|
333720
|
-
if (target < 0 ||
|
|
333729
|
+
if (target < 0 || parser10.getGoto(this.stack[target], term, false) < 0) {
|
|
333721
333730
|
let backup = this.findForcedReduction();
|
|
333722
333731
|
if (backup == null)
|
|
333723
333732
|
return false;
|
|
@@ -333736,18 +333745,18 @@ var Stack = class _Stack {
|
|
|
333736
333745
|
isn't a valid action. @internal
|
|
333737
333746
|
*/
|
|
333738
333747
|
findForcedReduction() {
|
|
333739
|
-
let { parser:
|
|
333748
|
+
let { parser: parser10 } = this.p, seen = [];
|
|
333740
333749
|
let explore = (state, depth) => {
|
|
333741
333750
|
if (seen.includes(state))
|
|
333742
333751
|
return;
|
|
333743
333752
|
seen.push(state);
|
|
333744
|
-
return
|
|
333753
|
+
return parser10.allActions(state, (action) => {
|
|
333745
333754
|
if (action & (262144 | 131072)) ;
|
|
333746
333755
|
else if (action & 65536) {
|
|
333747
333756
|
let rDepth = (action >> 19) - depth;
|
|
333748
333757
|
if (rDepth > 1) {
|
|
333749
333758
|
let term = action & 65535, target = this.stack.length - rDepth * 3;
|
|
333750
|
-
if (target >= 0 &&
|
|
333759
|
+
if (target >= 0 && parser10.getGoto(this.stack[target], term, false) >= 0)
|
|
333751
333760
|
return rDepth << 19 | 65536 | term;
|
|
333752
333761
|
}
|
|
333753
333762
|
} else {
|
|
@@ -333783,12 +333792,12 @@ var Stack = class _Stack {
|
|
|
333783
333792
|
get deadEnd() {
|
|
333784
333793
|
if (this.stack.length != 3)
|
|
333785
333794
|
return false;
|
|
333786
|
-
let { parser:
|
|
333787
|
-
return
|
|
333795
|
+
let { parser: parser10 } = this.p;
|
|
333796
|
+
return parser10.data[parser10.stateSlot(
|
|
333788
333797
|
this.state,
|
|
333789
333798
|
1
|
|
333790
333799
|
/* ParseState.Actions */
|
|
333791
|
-
)] == 65535 && !
|
|
333800
|
+
)] == 65535 && !parser10.stateSlot(
|
|
333792
333801
|
this.state,
|
|
333793
333802
|
4
|
|
333794
333803
|
/* ParseState.DefaultReduce */
|
|
@@ -334210,8 +334219,8 @@ var TokenGroup = class {
|
|
|
334210
334219
|
this.id = id2;
|
|
334211
334220
|
}
|
|
334212
334221
|
token(input, stack2) {
|
|
334213
|
-
let { parser:
|
|
334214
|
-
readToken(this.data, input, stack2, this.id,
|
|
334222
|
+
let { parser: parser10 } = stack2.p;
|
|
334223
|
+
readToken(this.data, input, stack2, this.id, parser10.data, parser10.tokenPrecTable);
|
|
334215
334224
|
}
|
|
334216
334225
|
};
|
|
334217
334226
|
TokenGroup.prototype.contextual = TokenGroup.prototype.fallback = TokenGroup.prototype.extend = false;
|
|
@@ -334412,18 +334421,18 @@ var FragmentCursor = class {
|
|
|
334412
334421
|
}
|
|
334413
334422
|
};
|
|
334414
334423
|
var TokenCache = class {
|
|
334415
|
-
constructor(
|
|
334424
|
+
constructor(parser10, stream5) {
|
|
334416
334425
|
this.stream = stream5;
|
|
334417
334426
|
this.tokens = [];
|
|
334418
334427
|
this.mainToken = null;
|
|
334419
334428
|
this.actions = [];
|
|
334420
|
-
this.tokens =
|
|
334429
|
+
this.tokens = parser10.tokenizers.map((_) => new CachedToken());
|
|
334421
334430
|
}
|
|
334422
334431
|
getActions(stack2) {
|
|
334423
334432
|
let actionIndex = 0;
|
|
334424
334433
|
let main = null;
|
|
334425
|
-
let { parser:
|
|
334426
|
-
let mask =
|
|
334434
|
+
let { parser: parser10 } = stack2.p, { tokenizers } = parser10;
|
|
334435
|
+
let mask = parser10.stateSlot(
|
|
334427
334436
|
stack2.state,
|
|
334428
334437
|
3
|
|
334429
334438
|
/* ParseState.TokenizerMask */
|
|
@@ -334481,10 +334490,10 @@ var TokenCache = class {
|
|
|
334481
334490
|
let start = this.stream.clipPos(stack2.pos);
|
|
334482
334491
|
tokenizer.token(this.stream.reset(start, token2), stack2);
|
|
334483
334492
|
if (token2.value > -1) {
|
|
334484
|
-
let { parser:
|
|
334485
|
-
for (let i2 = 0; i2 <
|
|
334486
|
-
if (
|
|
334487
|
-
let result =
|
|
334493
|
+
let { parser: parser10 } = stack2.p;
|
|
334494
|
+
for (let i2 = 0; i2 < parser10.specialized.length; i2++)
|
|
334495
|
+
if (parser10.specialized[i2] == token2.value) {
|
|
334496
|
+
let result = parser10.specializers[i2](this.stream.read(token2.start, token2.end), stack2);
|
|
334488
334497
|
if (result >= 0 && stack2.p.parser.dialect.allows(result >> 1)) {
|
|
334489
334498
|
if ((result & 1) == 0)
|
|
334490
334499
|
token2.value = result >> 1;
|
|
@@ -334508,9 +334517,9 @@ var TokenCache = class {
|
|
|
334508
334517
|
return index;
|
|
334509
334518
|
}
|
|
334510
334519
|
addActions(stack2, token2, end, index) {
|
|
334511
|
-
let { state } = stack2, { parser:
|
|
334520
|
+
let { state } = stack2, { parser: parser10 } = stack2.p, { data } = parser10;
|
|
334512
334521
|
for (let set2 = 0; set2 < 2; set2++) {
|
|
334513
|
-
for (let i2 =
|
|
334522
|
+
for (let i2 = parser10.stateSlot(
|
|
334514
334523
|
state,
|
|
334515
334524
|
set2 ? 2 : 1
|
|
334516
334525
|
/* ParseState.Actions */
|
|
@@ -334532,8 +334541,8 @@ var TokenCache = class {
|
|
|
334532
334541
|
}
|
|
334533
334542
|
};
|
|
334534
334543
|
var Parse = class {
|
|
334535
|
-
constructor(
|
|
334536
|
-
this.parser =
|
|
334544
|
+
constructor(parser10, input, fragments, ranges) {
|
|
334545
|
+
this.parser = parser10;
|
|
334537
334546
|
this.input = input;
|
|
334538
334547
|
this.ranges = ranges;
|
|
334539
334548
|
this.recovering = 0;
|
|
@@ -334545,11 +334554,11 @@ var Parse = class {
|
|
|
334545
334554
|
this.lastBigReductionSize = 0;
|
|
334546
334555
|
this.bigReductionCount = 0;
|
|
334547
334556
|
this.stream = new InputStream(input, ranges);
|
|
334548
|
-
this.tokens = new TokenCache(
|
|
334549
|
-
this.topTerm =
|
|
334557
|
+
this.tokens = new TokenCache(parser10, this.stream);
|
|
334558
|
+
this.topTerm = parser10.top[1];
|
|
334550
334559
|
let { from } = ranges[0];
|
|
334551
|
-
this.stacks = [Stack.start(this,
|
|
334552
|
-
this.fragments = fragments.length && this.stream.end - from >
|
|
334560
|
+
this.stacks = [Stack.start(this, parser10.top[0], from)];
|
|
334561
|
+
this.fragments = fragments.length && this.stream.end - from > parser10.bufferLength * 4 ? new FragmentCursor(fragments, parser10.nodeSet) : null;
|
|
334553
334562
|
}
|
|
334554
334563
|
get parsedPos() {
|
|
334555
334564
|
return this.minStackPos;
|
|
@@ -334660,18 +334669,18 @@ var Parse = class {
|
|
|
334660
334669
|
// given, stacks split off by ambiguous operations will be pushed to
|
|
334661
334670
|
// `split`, or added to `stacks` if they move `pos` forward.
|
|
334662
334671
|
advanceStack(stack2, stacks, split) {
|
|
334663
|
-
let start = stack2.pos, { parser:
|
|
334672
|
+
let start = stack2.pos, { parser: parser10 } = this;
|
|
334664
334673
|
let base = verbose ? this.stackID(stack2) + " -> " : "";
|
|
334665
334674
|
if (this.stoppedAt != null && start > this.stoppedAt)
|
|
334666
334675
|
return stack2.forceReduce() ? stack2 : null;
|
|
334667
334676
|
if (this.fragments) {
|
|
334668
334677
|
let strictCx = stack2.curContext && stack2.curContext.tracker.strict, cxHash = strictCx ? stack2.curContext.hash : 0;
|
|
334669
334678
|
for (let cached = this.fragments.nodeAt(start); cached; ) {
|
|
334670
|
-
let match3 = this.parser.nodeSet.types[cached.type.id] == cached.type ?
|
|
334679
|
+
let match3 = this.parser.nodeSet.types[cached.type.id] == cached.type ? parser10.getGoto(stack2.state, cached.type.id) : -1;
|
|
334671
334680
|
if (match3 > -1 && cached.length && (!strictCx || (cached.prop(NodeProp.contextHash) || 0) == cxHash)) {
|
|
334672
334681
|
stack2.useNode(cached, match3);
|
|
334673
334682
|
if (verbose)
|
|
334674
|
-
console.log(base + this.stackID(stack2) + ` (via reuse of ${
|
|
334683
|
+
console.log(base + this.stackID(stack2) + ` (via reuse of ${parser10.getName(cached.type.id)})`);
|
|
334675
334684
|
return true;
|
|
334676
334685
|
}
|
|
334677
334686
|
if (!(cached instanceof Tree) || cached.children.length == 0 || cached.positions[0] > 0)
|
|
@@ -334683,7 +334692,7 @@ var Parse = class {
|
|
|
334683
334692
|
break;
|
|
334684
334693
|
}
|
|
334685
334694
|
}
|
|
334686
|
-
let defaultReduce =
|
|
334695
|
+
let defaultReduce = parser10.stateSlot(
|
|
334687
334696
|
stack2.state,
|
|
334688
334697
|
4
|
|
334689
334698
|
/* ParseState.DefaultReduce */
|
|
@@ -334691,7 +334700,7 @@ var Parse = class {
|
|
|
334691
334700
|
if (defaultReduce > 0) {
|
|
334692
334701
|
stack2.reduce(defaultReduce);
|
|
334693
334702
|
if (verbose)
|
|
334694
|
-
console.log(base + this.stackID(stack2) + ` (via always-reduce ${
|
|
334703
|
+
console.log(base + this.stackID(stack2) + ` (via always-reduce ${parser10.getName(
|
|
334695
334704
|
defaultReduce & 65535
|
|
334696
334705
|
/* Action.ValueMask */
|
|
334697
334706
|
)})`);
|
|
@@ -334709,10 +334718,10 @@ var Parse = class {
|
|
|
334709
334718
|
let main = this.tokens.mainToken;
|
|
334710
334719
|
localStack.apply(action, term, main ? main.start : localStack.pos, end);
|
|
334711
334720
|
if (verbose)
|
|
334712
|
-
console.log(base + this.stackID(localStack) + ` (via ${(action & 65536) == 0 ? "shift" : `reduce of ${
|
|
334721
|
+
console.log(base + this.stackID(localStack) + ` (via ${(action & 65536) == 0 ? "shift" : `reduce of ${parser10.getName(
|
|
334713
334722
|
action & 65535
|
|
334714
334723
|
/* Action.ValueMask */
|
|
334715
|
-
)}`} for ${
|
|
334724
|
+
)}`} for ${parser10.getName(term)} @ ${start}${localStack == stack2 ? "" : ", split"})`);
|
|
334716
334725
|
if (last2)
|
|
334717
334726
|
return true;
|
|
334718
334727
|
else if (localStack.pos > start)
|
|
@@ -336098,8 +336107,8 @@ var parser4 = LRParser.deserialize({
|
|
|
336098
336107
|
});
|
|
336099
336108
|
|
|
336100
336109
|
// ../../../vite-plugin-file-sync/dist/binding-extraction/extract-py-identifiers.js
|
|
336101
|
-
var extractPyEvaluationPairsWithTokenizer = (pythonSnippet,
|
|
336102
|
-
const tree =
|
|
336110
|
+
var extractPyEvaluationPairsWithTokenizer = (pythonSnippet, parser10) => {
|
|
336111
|
+
const tree = parser10.parse(pythonSnippet);
|
|
336103
336112
|
const cursor3 = tree.cursor();
|
|
336104
336113
|
let isCapturing = false;
|
|
336105
336114
|
const bindingPairs = [];
|
|
@@ -343480,6 +343489,9 @@ function isSBTemplateNode(node) {
|
|
|
343480
343489
|
// ../../../vite-plugin-file-sync/dist/parsing/type-parsing-registry.js
|
|
343481
343490
|
init_cjs_shims();
|
|
343482
343491
|
|
|
343492
|
+
// ../../../vite-plugin-file-sync/dist/parsing/computed/index.js
|
|
343493
|
+
init_cjs_shims();
|
|
343494
|
+
|
|
343483
343495
|
// ../../../vite-plugin-file-sync/dist/parsing/computed/to-code-computed.js
|
|
343484
343496
|
init_cjs_shims();
|
|
343485
343497
|
function isValidJSXExpression(value2) {
|
|
@@ -343533,6 +343545,15 @@ function toValueComputed(expression) {
|
|
|
343533
343545
|
return getFunctionExpressionBody(computedNode);
|
|
343534
343546
|
}
|
|
343535
343547
|
|
|
343548
|
+
// ../../../vite-plugin-file-sync/dist/parsing/computed/index.js
|
|
343549
|
+
var parser5 = {
|
|
343550
|
+
toCode: (value2) => toCodeComputed(value2),
|
|
343551
|
+
toValue: (code) => toValueComputed(code)
|
|
343552
|
+
};
|
|
343553
|
+
|
|
343554
|
+
// ../../../vite-plugin-file-sync/dist/parsing/dim/index.js
|
|
343555
|
+
init_cjs_shims();
|
|
343556
|
+
|
|
343536
343557
|
// ../../../vite-plugin-file-sync/dist/parsing/dim/to-code-dimensions.js
|
|
343537
343558
|
init_cjs_shims();
|
|
343538
343559
|
function toCodeDimension(value2) {
|
|
@@ -343593,6 +343614,15 @@ function toValueDimension(expression) {
|
|
|
343593
343614
|
};
|
|
343594
343615
|
}
|
|
343595
343616
|
|
|
343617
|
+
// ../../../vite-plugin-file-sync/dist/parsing/dim/index.js
|
|
343618
|
+
var parser6 = {
|
|
343619
|
+
toCode: (value2) => toCodeDimension(value2),
|
|
343620
|
+
toValue: (source2) => toValueDimension(source2.node)
|
|
343621
|
+
};
|
|
343622
|
+
|
|
343623
|
+
// ../../../vite-plugin-file-sync/dist/parsing/events/index.js
|
|
343624
|
+
init_cjs_shims();
|
|
343625
|
+
|
|
343596
343626
|
// ../../../vite-plugin-file-sync/dist/parsing/events/to-code-events.js
|
|
343597
343627
|
init_cjs_shims();
|
|
343598
343628
|
|
|
@@ -343731,7 +343761,12 @@ function toCodeEventFlow(stepDefs_) {
|
|
|
343731
343761
|
case TriggerStepType.SET_STATE_VAR: {
|
|
343732
343762
|
const name17 = `${stepDef.state?.scope === import_shared9.ApplicationScope.APP ? "App." : ""}${stepDef.state?.name ?? ""}`;
|
|
343733
343763
|
const value2 = stepDef.value ?? "";
|
|
343734
|
-
if ((
|
|
343764
|
+
if (isComputedPropertyInfo(value2)) {
|
|
343765
|
+
const computedValue = parser5.toCode(value2.value);
|
|
343766
|
+
code = `${code}.setStateVar("${name17}", ${computedValue})`;
|
|
343767
|
+
} else if (containsStringInterpolation(value2)) {
|
|
343768
|
+
code = `${code}.setStateVar("${name17}", sbComputed(() => \`${value2}\`))`;
|
|
343769
|
+
} else if (typeof value2 === "string" && (0, import_shared9.containsBindingsAnywhere)(value2)) {
|
|
343735
343770
|
code = `${code}.setStateVar("${name17}", SB\`${value2}\`)`;
|
|
343736
343771
|
} else if (typeof value2 === "object" && value2 != null) {
|
|
343737
343772
|
code = `${code}.setStateVar("${name17}", ${JSON.stringify(value2)})`;
|
|
@@ -343767,6 +343802,24 @@ var getApiCallbackNode = (nodePath) => {
|
|
|
343767
343802
|
}
|
|
343768
343803
|
return [];
|
|
343769
343804
|
};
|
|
343805
|
+
function getStateVarValue(valueNodePath) {
|
|
343806
|
+
if (isSbComputedNode(valueNodePath)) {
|
|
343807
|
+
return Property.Computed(parser5.toValue(valueNodePath));
|
|
343808
|
+
} else if (isDimNode(valueNodePath)) {
|
|
343809
|
+
return Property.Computed(JSON.stringify(parser6.toValue(valueNodePath)));
|
|
343810
|
+
}
|
|
343811
|
+
try {
|
|
343812
|
+
const value2 = nodeToValue(valueNodePath.node);
|
|
343813
|
+
if (typeof value2 === "string") {
|
|
343814
|
+
return value2;
|
|
343815
|
+
}
|
|
343816
|
+
if (value2 !== null || valueNodePath.node.type === "NullLiteral") {
|
|
343817
|
+
return Property.Computed(JSON.stringify(value2));
|
|
343818
|
+
}
|
|
343819
|
+
} catch (_e) {
|
|
343820
|
+
}
|
|
343821
|
+
return Property.Computed(generate(valueNodePath.node).code);
|
|
343822
|
+
}
|
|
343770
343823
|
function toValueEventFlow(nodePath, existingSteps = [], parentId) {
|
|
343771
343824
|
const logger3 = getLogger();
|
|
343772
343825
|
const callee = nodePath.get("callee");
|
|
@@ -343868,7 +343921,7 @@ function toValueEventFlow(nodePath, existingSteps = [], parentId) {
|
|
|
343868
343921
|
return existingSteps;
|
|
343869
343922
|
}
|
|
343870
343923
|
const name17 = nodeToValue(expression.node);
|
|
343871
|
-
const value2 =
|
|
343924
|
+
const value2 = getStateVarValue(valueNodePath);
|
|
343872
343925
|
const isAppScoped = name17.includes("App");
|
|
343873
343926
|
const variableName = isAppScoped ? name17.split(".")[1] : name17;
|
|
343874
343927
|
if (!variableName)
|
|
@@ -343912,6 +343965,15 @@ function toValueEventFlow(nodePath, existingSteps = [], parentId) {
|
|
|
343912
343965
|
}
|
|
343913
343966
|
}
|
|
343914
343967
|
|
|
343968
|
+
// ../../../vite-plugin-file-sync/dist/parsing/events/index.js
|
|
343969
|
+
var parser7 = {
|
|
343970
|
+
toCode: (value2) => toCodeEventFlow(value2),
|
|
343971
|
+
toValue: (source2) => toValueEventFlow(source2)
|
|
343972
|
+
};
|
|
343973
|
+
|
|
343974
|
+
// ../../../vite-plugin-file-sync/dist/parsing/template/index.js
|
|
343975
|
+
init_cjs_shims();
|
|
343976
|
+
|
|
343915
343977
|
// ../../../vite-plugin-file-sync/dist/parsing/template/to-code-template.js
|
|
343916
343978
|
init_cjs_shims();
|
|
343917
343979
|
function toCodeTemplate(str2) {
|
|
@@ -343946,28 +344008,18 @@ function toValueTemplate(nodePath) {
|
|
|
343946
344008
|
return "";
|
|
343947
344009
|
}
|
|
343948
344010
|
|
|
343949
|
-
// ../../../vite-plugin-file-sync/dist/parsing/
|
|
343950
|
-
var
|
|
343951
|
-
toCode: (value2) => toCodeDimension(value2),
|
|
343952
|
-
toValue: (source2) => toValueDimension(source2.node)
|
|
343953
|
-
};
|
|
343954
|
-
var eventParser = {
|
|
343955
|
-
toCode: (value2) => toCodeEventFlow(value2),
|
|
343956
|
-
toValue: (source2) => toValueEventFlow(source2)
|
|
343957
|
-
};
|
|
343958
|
-
var templateParser = {
|
|
344011
|
+
// ../../../vite-plugin-file-sync/dist/parsing/template/index.js
|
|
344012
|
+
var parser8 = {
|
|
343959
344013
|
toCode: (value2) => toCodeTemplate(value2),
|
|
343960
344014
|
toValue: (source2) => toValueTemplate(source2)
|
|
343961
344015
|
};
|
|
343962
|
-
|
|
343963
|
-
|
|
343964
|
-
toValue: (code) => toValueComputed(code)
|
|
343965
|
-
};
|
|
344016
|
+
|
|
344017
|
+
// ../../../vite-plugin-file-sync/dist/parsing/type-parsing-registry.js
|
|
343966
344018
|
var parsingRegistry = {
|
|
343967
|
-
DIMENSION:
|
|
343968
|
-
EVENT:
|
|
343969
|
-
COMPUTED:
|
|
343970
|
-
TEMPLATE:
|
|
344019
|
+
DIMENSION: parser6,
|
|
344020
|
+
EVENT: parser7,
|
|
344021
|
+
COMPUTED: parser5,
|
|
344022
|
+
TEMPLATE: parser8
|
|
343971
344023
|
};
|
|
343972
344024
|
|
|
343973
344025
|
// ../../../vite-plugin-file-sync/dist/parsing/properties.js
|
|
@@ -344964,9 +345016,9 @@ function toValueEntity(nodePath, { key: key2, id: id2 }) {
|
|
|
344964
345016
|
}
|
|
344965
345017
|
|
|
344966
345018
|
// ../../../vite-plugin-file-sync/dist/parsing/entity/index.js
|
|
344967
|
-
var
|
|
344968
|
-
|
|
344969
|
-
|
|
345019
|
+
var parser9 = {
|
|
345020
|
+
toCode: toCodeEntity,
|
|
345021
|
+
toValue: toValueEntity
|
|
344970
345022
|
};
|
|
344971
345023
|
|
|
344972
345024
|
// ../../../vite-plugin-file-sync/dist/parsing/imports.js
|
|
@@ -344976,6 +345028,10 @@ var REQUIRED_IMPORTS_BY_PROPERTY_TYPE = {
|
|
|
344976
345028
|
{
|
|
344977
345029
|
importName: "SbEventFlow",
|
|
344978
345030
|
importPath: "@superblocksteam/library"
|
|
345031
|
+
},
|
|
345032
|
+
{
|
|
345033
|
+
importName: "sbComputed",
|
|
345034
|
+
importPath: "@superblocksteam/library"
|
|
344979
345035
|
}
|
|
344980
345036
|
],
|
|
344981
345037
|
BINDING: [
|
|
@@ -345072,7 +345128,7 @@ function updateEntityNode(node, updates, entityId) {
|
|
|
345072
345128
|
}
|
|
345073
345129
|
function fromEntityToNode(entity) {
|
|
345074
345130
|
const imports = importsByEntityType[entity.type] ?? [];
|
|
345075
|
-
const code =
|
|
345131
|
+
const code = parser9.toCode(entity);
|
|
345076
345132
|
const parsedEntity = (0, import_parser4.parse)(code, {
|
|
345077
345133
|
sourceType: "module",
|
|
345078
345134
|
plugins: ["typescript", "jsx"]
|
|
@@ -345089,7 +345145,7 @@ function fromNodeToEntity(property, entityId) {
|
|
|
345089
345145
|
const entityName = nodeToValue(property.get("key").node);
|
|
345090
345146
|
const expression = property.get("value");
|
|
345091
345147
|
const id2 = entityId ?? getSbElementId(property.node);
|
|
345092
|
-
return
|
|
345148
|
+
return parser9.toValue(expression, {
|
|
345093
345149
|
key: entityName,
|
|
345094
345150
|
id: id2
|
|
345095
345151
|
});
|
|
@@ -366648,9 +366704,9 @@ function getPrinterPluginByAstFormat(plugins, astFormat) {
|
|
|
366648
366704
|
}
|
|
366649
366705
|
throw new ConfigError(message);
|
|
366650
366706
|
}
|
|
366651
|
-
function resolveParser({ plugins, parser:
|
|
366652
|
-
const plugin = getParserPluginByParserName(plugins,
|
|
366653
|
-
return initParser(plugin,
|
|
366707
|
+
function resolveParser({ plugins, parser: parser10 }) {
|
|
366708
|
+
const plugin = getParserPluginByParserName(plugins, parser10);
|
|
366709
|
+
return initParser(plugin, parser10);
|
|
366654
366710
|
}
|
|
366655
366711
|
function initParser(plugin, parserName) {
|
|
366656
366712
|
const parserOrParserInitFunction = plugin.parsers[parserName];
|
|
@@ -366700,12 +366756,12 @@ async function normalizeFormatOptions(options8, opts = {}) {
|
|
|
366700
366756
|
rawOptions.plugins,
|
|
366701
366757
|
rawOptions.parser
|
|
366702
366758
|
);
|
|
366703
|
-
const
|
|
366704
|
-
rawOptions.astFormat =
|
|
366705
|
-
rawOptions.locEnd =
|
|
366706
|
-
rawOptions.locStart =
|
|
366707
|
-
const printerPlugin = ((_a17 = parserPlugin.printers) == null ? void 0 : _a17[
|
|
366708
|
-
const printer2 = await initPrinter(printerPlugin,
|
|
366759
|
+
const parser10 = await initParser(parserPlugin, rawOptions.parser);
|
|
366760
|
+
rawOptions.astFormat = parser10.astFormat;
|
|
366761
|
+
rawOptions.locEnd = parser10.locEnd;
|
|
366762
|
+
rawOptions.locStart = parser10.locStart;
|
|
366763
|
+
const printerPlugin = ((_a17 = parserPlugin.printers) == null ? void 0 : _a17[parser10.astFormat]) ? parserPlugin : getPrinterPluginByAstFormat(rawOptions.plugins, parser10.astFormat);
|
|
366764
|
+
const printer2 = await initPrinter(printerPlugin, parser10.astFormat);
|
|
366709
366765
|
rawOptions.printer = printer2;
|
|
366710
366766
|
const pluginDefaults = printerPlugin.defaultOptions ? Object.fromEntries(
|
|
366711
366767
|
Object.entries(printerPlugin.defaultOptions).filter(
|
|
@@ -366729,12 +366785,12 @@ async function normalizeFormatOptions(options8, opts = {}) {
|
|
|
366729
366785
|
var normalize_format_options_default = normalizeFormatOptions;
|
|
366730
366786
|
var import_code_frame2 = __toESM2(require_lib210(), 1);
|
|
366731
366787
|
async function parse52(originalText, options8) {
|
|
366732
|
-
const
|
|
366733
|
-
const text2 =
|
|
366788
|
+
const parser10 = await resolveParser(options8);
|
|
366789
|
+
const text2 = parser10.preprocess ? parser10.preprocess(originalText, options8) : originalText;
|
|
366734
366790
|
options8.originalText = text2;
|
|
366735
366791
|
let ast;
|
|
366736
366792
|
try {
|
|
366737
|
-
ast = await
|
|
366793
|
+
ast = await parser10.parse(
|
|
366738
366794
|
text2,
|
|
366739
366795
|
options8,
|
|
366740
366796
|
// TODO: remove the third argument in v4
|
|
@@ -367055,7 +367111,7 @@ var arrayFindLastIndex = (isOptionalObject, array2, callback) => {
|
|
|
367055
367111
|
return -1;
|
|
367056
367112
|
};
|
|
367057
367113
|
var array_find_last_index_default = arrayFindLastIndex;
|
|
367058
|
-
var isJsonParser = ({ parser:
|
|
367114
|
+
var isJsonParser = ({ parser: parser10 }) => parser10 === "json" || parser10 === "json5" || parser10 === "jsonc" || parser10 === "json-stringify";
|
|
367059
367115
|
function findCommonAncestor(startNodeAndParents, endNodeAndParents) {
|
|
367060
367116
|
const startNodeAndAncestors = [
|
|
367061
367117
|
startNodeAndParents.node,
|
|
@@ -371656,7 +371712,7 @@ var LockService = class extends EventEmitter7 {
|
|
|
371656
371712
|
await this.shutdown();
|
|
371657
371713
|
throw new Error(`${error}`);
|
|
371658
371714
|
} else {
|
|
371659
|
-
throw new Error(
|
|
371715
|
+
throw new Error(`${error}. Please try again later.`);
|
|
371660
371716
|
}
|
|
371661
371717
|
}
|
|
371662
371718
|
}
|
|
@@ -371731,8 +371787,10 @@ var LockService = class extends EventEmitter7 {
|
|
|
371731
371787
|
*/
|
|
371732
371788
|
async shutdown() {
|
|
371733
371789
|
const logger3 = getLogger();
|
|
371734
|
-
if (this.syncCallback) {
|
|
371790
|
+
if (this.syncCallback && this.isLocked) {
|
|
371735
371791
|
await this.syncCallback();
|
|
371792
|
+
} else {
|
|
371793
|
+
logger3.info("[lock-service] no sync callback because lock is not valid anymore");
|
|
371736
371794
|
}
|
|
371737
371795
|
this.stopHeartbeat();
|
|
371738
371796
|
if (this.isLocked) {
|
|
@@ -375768,8 +375826,7 @@ async function createDevServer({ root: root2, mode, fsOperationQueue, syncServic
|
|
|
375768
375826
|
async function gracefulShutdown(logger4) {
|
|
375769
375827
|
try {
|
|
375770
375828
|
if (lockService?.isLocked) {
|
|
375771
|
-
await
|
|
375772
|
-
await lockService.releaseLock();
|
|
375829
|
+
await lockService.shutdown();
|
|
375773
375830
|
}
|
|
375774
375831
|
if (viteServer) {
|
|
375775
375832
|
await viteServer?.close();
|
|
@@ -375882,7 +375939,7 @@ async function startVite({ app, httpServer: httpServer2, root: root2, mode, port
|
|
|
375882
375939
|
};
|
|
375883
375940
|
const isCustomBuildEnabled2 = await isCustomComponentsEnabled();
|
|
375884
375941
|
const customFolder = path21.join(root2, "custom");
|
|
375885
|
-
const cdnUrl = "https://assets-cdn.superblocks.com/library/2.0.3-next.
|
|
375942
|
+
const cdnUrl = "https://assets-cdn.superblocks.com/library/2.0.3-next.154";
|
|
375886
375943
|
const env3 = loadEnv(mode, root2, "");
|
|
375887
375944
|
const hmrPort = await getFreePort();
|
|
375888
375945
|
const hmrOptions = {
|
|
@@ -382595,7 +382652,7 @@ init_cjs_shims();
|
|
|
382595
382652
|
init_cjs_shims();
|
|
382596
382653
|
var generated = {};
|
|
382597
382654
|
try {
|
|
382598
|
-
generated = await import("./generated-
|
|
382655
|
+
generated = await import("./generated-FORH4H64.js");
|
|
382599
382656
|
} catch (_error) {
|
|
382600
382657
|
getLogger().warn("[ai-service] Generated markdown modules not found. Run `pnpm generate:markdown` first.");
|
|
382601
382658
|
}
|
package/oclif.manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@superblocksteam/cli",
|
|
3
|
-
"version": "2.0.3-next.
|
|
3
|
+
"version": "2.0.3-next.154",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Official Superblocks CLI",
|
|
6
6
|
"homepage": "https://www.superblocks.com",
|
|
@@ -42,9 +42,9 @@
|
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@eslint/js": "^9.16.0",
|
|
44
44
|
"@oclif/test": "^4.1.11",
|
|
45
|
-
"@superblocksteam/sdk": "2.0.3-next.
|
|
45
|
+
"@superblocksteam/sdk": "2.0.3-next.154",
|
|
46
46
|
"@superblocksteam/shared": "0.9115.0",
|
|
47
|
-
"@superblocksteam/util": "2.0.3-next.
|
|
47
|
+
"@superblocksteam/util": "2.0.3-next.154",
|
|
48
48
|
"@types/babel__core": "^7.20.0",
|
|
49
49
|
"@types/chai": "^4",
|
|
50
50
|
"@types/fs-extra": "^11.0.1",
|