@wix/astro 0.2.13 → 0.2.15

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 (80) hide show
  1. package/dist/components/TailwindEditor/EditorPanel.d.ts +11 -0
  2. package/dist/components/TailwindEditor/EditorPanel.js +86 -0
  3. package/dist/components/TailwindEditor/dev-toolbar-app.d.ts +14 -0
  4. package/dist/components/TailwindEditor/dev-toolbar-app.js +39 -0
  5. package/dist/components/TailwindEditor/dev-toolbar.d.ts +13 -0
  6. package/dist/components/TailwindEditor/dev-toolbar.js +547 -0
  7. package/dist/components/TailwindEditor/index.d.ts +5 -0
  8. package/dist/components/TailwindEditor/index.js +155 -0
  9. package/dist/components/TailwindEditor/integration.d.ts +3 -0
  10. package/dist/components/TailwindEditor/integration.js +18 -0
  11. package/dist/components/TailwindEditor/types.d.ts +35 -0
  12. package/dist/components/TailwindEditor/types.js +2 -0
  13. package/dist/components/TailwindEditor/utils.d.ts +22 -0
  14. package/dist/components/TailwindEditor/utils.js +234 -0
  15. package/dist/components/login-helpers/bi-header-generator.d.ts +11 -0
  16. package/dist/components/login-helpers/bi-header-generator.js +18 -0
  17. package/dist/components/login-helpers/iframeUtils.d.ts +4 -0
  18. package/dist/components/login-helpers/iframeUtils.js +44 -0
  19. package/dist/components/login-helpers/login-helpers.d.ts +39 -0
  20. package/dist/components/login-helpers/login-helpers.js +117 -0
  21. package/dist/dev-toolbar/Editor/EditorPanel.d.ts +14 -0
  22. package/dist/dev-toolbar/Editor/EditorPanel.js +1273 -0
  23. package/dist/dev-toolbar/Editor/classes.d.ts +12 -0
  24. package/dist/dev-toolbar/Editor/classes.js +271 -0
  25. package/dist/dev-toolbar/Editor/dnd.d.ts +34 -0
  26. package/dist/dev-toolbar/Editor/dnd.js +1161 -0
  27. package/dist/dev-toolbar/Editor/index.d.ts +5 -0
  28. package/dist/dev-toolbar/Editor/index.js +136 -0
  29. package/dist/dev-toolbar/Editor/types.d.ts +42 -0
  30. package/dist/dev-toolbar/Editor/types.js +2 -0
  31. package/dist/dev-toolbar/agent-chat.d.ts +14 -0
  32. package/dist/dev-toolbar/agent-chat.js +362 -0
  33. package/dist/dev-toolbar/ai-agent-server.d.ts +1 -0
  34. package/dist/dev-toolbar/ai-agent-server.js +174 -0
  35. package/dist/dev-toolbar/ai-agent.d.ts +2 -0
  36. package/dist/dev-toolbar/ai-agent.js +171 -0
  37. package/dist/dev-toolbar/api-key-form.d.ts +7 -0
  38. package/dist/dev-toolbar/api-key-form.js +138 -0
  39. package/dist/dev-toolbar/astro-toolbar.d.ts +1156 -0
  40. package/dist/dev-toolbar/astro-toolbar.js +29 -0
  41. package/dist/dev-toolbar/editor.d.ts +2 -0
  42. package/dist/dev-toolbar/editor.js +19 -0
  43. package/dist/integration.d.ts +3 -1
  44. package/dist/integration.js +41 -10
  45. package/dist/routes/auth/callback.js +1 -1
  46. package/dist/src/auth-context.d.ts +5 -0
  47. package/dist/src/auth-context.js +3 -0
  48. package/dist/src/client.d.ts +15 -0
  49. package/dist/src/client.js +17 -0
  50. package/dist/src/entrypoints/server.d.ts +13 -0
  51. package/dist/src/entrypoints/server.js +37 -0
  52. package/dist/src/index.d.ts +5 -0
  53. package/dist/src/index.js +5 -0
  54. package/dist/src/integration.d.ts +8 -0
  55. package/dist/src/integration.js +229 -0
  56. package/dist/src/loaders/blog.d.ts +2 -0
  57. package/dist/src/loaders/blog.js +49 -0
  58. package/dist/src/loaders/index.d.ts +2 -0
  59. package/dist/src/loaders/index.js +3 -0
  60. package/dist/src/middleware.d.ts +2 -0
  61. package/dist/src/middleware.js +90 -0
  62. package/dist/src/routes/auth/callback.d.ts +3 -0
  63. package/dist/src/routes/auth/callback.js +53 -0
  64. package/dist/src/routes/auth/constants.d.ts +5 -0
  65. package/dist/src/routes/auth/constants.js +6 -0
  66. package/dist/src/routes/auth/login.d.ts +3 -0
  67. package/dist/src/routes/auth/login.js +27 -0
  68. package/dist/src/routes/auth/logout-callback.d.ts +3 -0
  69. package/dist/src/routes/auth/logout-callback.js +10 -0
  70. package/dist/src/routes/auth/logout.d.ts +3 -0
  71. package/dist/src/routes/auth/logout.js +11 -0
  72. package/dist/src/routes/auth/runtime.d.ts +5 -0
  73. package/dist/src/routes/auth/runtime.js +8 -0
  74. package/dist/src/runtime.d.ts +2 -0
  75. package/dist/src/runtime.js +9 -0
  76. package/dist/src/vite-plugins/sdk-context.d.ts +4 -0
  77. package/dist/src/vite-plugins/sdk-context.js +68 -0
  78. package/dist/vite-plugins/sdk-context.d.ts +3 -1
  79. package/dist/vite-plugins/sdk-context.js +51 -70
  80. package/package.json +6 -3
@@ -0,0 +1,155 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useState, useCallback } from 'react';
3
+ import EditorPanel from './EditorPanel.js';
4
+ import { extractAstroSourceInfo, applyChanges } from './utils.js';
5
+ const TailwindEditor = () => {
6
+ const [showPanel, setShowPanel] = useState(false);
7
+ const [selectedElement, setSelectedElement] = useState(null);
8
+ const [originalClasses, setOriginalClasses] = useState([]);
9
+ const [currentClasses, setCurrentClasses] = useState([]);
10
+ const [selectionMode, setSelectionMode] = useState(false);
11
+ // Function to clear current selection - moved outside useEffect for reusability
12
+ const clearSelection = useCallback(() => {
13
+ if (selectedElement) {
14
+ // Reset the element to its original classes if panel was closed without applying
15
+ if (!showPanel) {
16
+ selectedElement.className = originalClasses.join(' ');
17
+ }
18
+ setSelectedElement(null);
19
+ setOriginalClasses([]);
20
+ setCurrentClasses([]);
21
+ }
22
+ }, [selectedElement, showPanel, originalClasses]);
23
+ useEffect(() => {
24
+ // Set up keyboard shortcuts
25
+ const toggleSelectionMode = (e) => {
26
+ // Alt+Shift+T to toggle selection mode
27
+ if (e.altKey && e.shiftKey && e.key === 'T') {
28
+ e.preventDefault();
29
+ setSelectionMode(prev => !prev);
30
+ }
31
+ // Escape to exit selection mode
32
+ if (e.key === 'Escape' && selectionMode) {
33
+ clearSelection();
34
+ setSelectionMode(false);
35
+ }
36
+ };
37
+ // Function to highlight elements on hover during selection mode
38
+ const highlightElement = (e) => {
39
+ if (!selectionMode)
40
+ return;
41
+ e.preventDefault();
42
+ e.stopPropagation();
43
+ const target = e.target;
44
+ // Check if the element has Astro source information
45
+ if (target && extractAstroSourceInfo(target)) {
46
+ // Add a highlight effect
47
+ target.style.outline = '2px solid #3b82f6';
48
+ }
49
+ };
50
+ // Function to remove highlight on mouseout
51
+ const removeHighlight = (e) => {
52
+ if (!selectionMode)
53
+ return;
54
+ const target = e.target;
55
+ if (target) {
56
+ target.style.outline = '';
57
+ }
58
+ };
59
+ // Function to select an element on click during selection mode
60
+ const selectElement = (e) => {
61
+ if (!selectionMode)
62
+ return;
63
+ e.preventDefault();
64
+ e.stopPropagation();
65
+ const target = e.target;
66
+ // Check if the element has Astro source information
67
+ const sourceInfo = target && extractAstroSourceInfo(target);
68
+ if (target && sourceInfo) {
69
+ setSelectedElement(target);
70
+ // Extract classes from the element
71
+ const classes = Array.from(target.classList);
72
+ setOriginalClasses(classes);
73
+ setCurrentClasses(classes);
74
+ // Exit selection mode and show editor panel
75
+ setSelectionMode(false);
76
+ setShowPanel(true);
77
+ }
78
+ };
79
+ // Add event listeners
80
+ document.addEventListener('keydown', toggleSelectionMode);
81
+ if (selectionMode) {
82
+ document.addEventListener('mouseover', highlightElement);
83
+ document.addEventListener('mouseout', removeHighlight);
84
+ document.addEventListener('click', selectElement);
85
+ }
86
+ // Clean up event listeners on unmount or when selectionMode changes
87
+ return () => {
88
+ document.removeEventListener('keydown', toggleSelectionMode);
89
+ document.removeEventListener('mouseover', highlightElement);
90
+ document.removeEventListener('mouseout', removeHighlight);
91
+ document.removeEventListener('click', selectElement);
92
+ };
93
+ }, [selectionMode, clearSelection]);
94
+ // Function to handle applying changes
95
+ const handleApplyChanges = async (changeSet) => {
96
+ if (changeSet.length === 0)
97
+ return;
98
+ try {
99
+ // Apply the changes to the actual files
100
+ const success = await applyChanges(changeSet);
101
+ if (success) {
102
+ console.log('Changes applied successfully!');
103
+ // Update the current classes
104
+ if (selectedElement) {
105
+ const newClasses = Array.from(selectedElement.classList);
106
+ setCurrentClasses(newClasses);
107
+ setOriginalClasses(newClasses); // Update original classes to match new state
108
+ }
109
+ }
110
+ else {
111
+ console.error('Failed to apply changes.');
112
+ }
113
+ }
114
+ catch (error) {
115
+ console.error('Error applying changes:', error);
116
+ }
117
+ };
118
+ // Function to close the editor panel
119
+ const closePanel = () => {
120
+ setShowPanel(false);
121
+ clearSelection();
122
+ };
123
+ // Render selection mode indicator or editor panel
124
+ return (_jsxs(_Fragment, { children: [selectionMode && (_jsx("div", { style: {
125
+ position: 'fixed',
126
+ top: '20px',
127
+ left: '20px',
128
+ background: '#3b82f6',
129
+ color: 'white',
130
+ padding: '8px 16px',
131
+ borderRadius: '4px',
132
+ zIndex: 9999,
133
+ boxShadow: '0 2px 5px rgba(0,0,0,0.2)',
134
+ pointerEvents: 'none',
135
+ }, children: "Selection Mode: Click on an element to edit" })), showPanel && (_jsx(EditorPanel, { selectedElement: selectedElement, originalClasses: originalClasses, currentClasses: currentClasses, onApplyChanges: handleApplyChanges, onClose: closePanel })), _jsx("button", { id: "tailwind-editor-fab", onClick: () => setSelectionMode(prev => !prev), style: {
136
+ position: 'fixed',
137
+ bottom: '20px',
138
+ right: '20px',
139
+ background: selectionMode ? '#ef4444' : '#3b82f6',
140
+ color: 'white',
141
+ padding: '12px',
142
+ borderRadius: '50%',
143
+ width: '48px',
144
+ height: '48px',
145
+ display: 'flex',
146
+ alignItems: 'center',
147
+ justifyContent: 'center',
148
+ boxShadow: '0 2px 10px rgba(0,0,0,0.2)',
149
+ cursor: 'pointer',
150
+ zIndex: 9998,
151
+ border: 'none',
152
+ }, title: selectionMode ? 'Exit Selection Mode' : 'Enter Selection Mode (Alt+Shift+T)', children: _jsx("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: _jsx("path", { d: "M12 2v20M2 12h20" }) }) })] }));
153
+ };
154
+ export default TailwindEditor;
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9UYWlsd2luZEVkaXRvci9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQWMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNoRSxPQUFPLFdBQVcsTUFBTSxrQkFBa0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBSWxFLE1BQU0sY0FBYyxHQUFrQyxHQUFHLEVBQUU7SUFDekQsTUFBTSxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEQsTUFBTSxDQUFDLGVBQWUsRUFBRSxrQkFBa0IsQ0FBQyxHQUFHLFFBQVEsQ0FBcUIsSUFBSSxDQUFDLENBQUM7SUFDakYsTUFBTSxDQUFDLGVBQWUsRUFBRSxrQkFBa0IsQ0FBQyxHQUFHLFFBQVEsQ0FBVyxFQUFFLENBQUMsQ0FBQztJQUNyRSxNQUFNLENBQUMsY0FBYyxFQUFFLGlCQUFpQixDQUFDLEdBQUcsUUFBUSxDQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLE1BQU0sQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFMUQsZ0ZBQWdGO0lBQ2hGLE1BQU0sY0FBYyxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUU7UUFDdEMsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNwQixpRkFBaUY7WUFDakYsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNmLGVBQWUsQ0FBQyxTQUFTLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN4RCxDQUFDO1lBRUQsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDekIsa0JBQWtCLENBQUMsRUFB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
@@ -0,0 +1,3 @@
1
+ import type { AstroIntegration } from 'astro';
2
+ declare const tailwindEditor: () => AstroIntegration;
3
+ export default tailwindEditor;
@@ -0,0 +1,18 @@
1
+ import { fileURLToPath } from 'node:url';
2
+ const tailwindEditor = () => {
3
+ return {
4
+ name: 'wix-tailwind-editor',
5
+ hooks: {
6
+ 'astro:config:setup': ({ addDevToolbarApp }) => {
7
+ addDevToolbarApp({
8
+ id: "wix-tailwind-editor",
9
+ name: "Tailwind Editor",
10
+ icon: "🎨",
11
+ entrypoint: fileURLToPath(new URL('./dev-toolbar-app.js', import.meta.url))
12
+ });
13
+ },
14
+ },
15
+ };
16
+ };
17
+ export default tailwindEditor;
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9UYWlsd2luZEVkaXRvci9pbnRlZ3JhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBR3pDLE1BQU0sY0FBYyxHQUFHLEdBQXFCLEVBQUU7SUFDNUMsT0FBTztRQUNMLElBQUksRUFBRSxxQkFBcUI7UUFDM0IsS0FBSyxFQUFFO1lBQ0wsb0JBQW9CLEVBQUUsQ0FBQyxFQUFFLGdCQUFnQixFQUFFLEVBQUUsRUFBRTtnQkFDN0MsZ0JBQWdCLENBQUM7b0JBQ2YsRUFBRSxFQUFFLHFCQUFxQjtvQkFDekIsSUFBSSxFQUFFLGlCQUFpQjtvQkFDdkIsSUFBSSxFQUFFLElBQUk7b0JBQ1YsVUFBVSxFQUFFLGFBQWEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxzQkFBc0IsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUM1RSxDQUFDLENBQUM7WUFDTCxDQUFDO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsZUFBZSxjQUFjLENBQUMifQ==
@@ -0,0 +1,35 @@
1
+ export type ChangeSetItem = {
2
+ file: string;
3
+ line: number;
4
+ instruction: {
5
+ type: string;
6
+ delta?: {
7
+ added: string[];
8
+ removed: string[];
9
+ };
10
+ textContent?: string;
11
+ propName?: string;
12
+ path?: string;
13
+ };
14
+ };
15
+ export type ClassChangeInstruction = {
16
+ type: "class_change";
17
+ propName?: string;
18
+ path?: string;
19
+ builtinStyles?: string;
20
+ delta?: {
21
+ added: string[];
22
+ removed: string[];
23
+ };
24
+ };
25
+ export type TextChangeInstruction = {
26
+ type: "replace_text";
27
+ textContent: string;
28
+ };
29
+ export type SchemaMap = {
30
+ [componentName: string]: {
31
+ selectorToChangeInstruction: {
32
+ [selector: string]: ClassChangeInstruction;
33
+ };
34
+ };
35
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9UYWlsd2luZEVkaXRvci90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -0,0 +1,22 @@
1
+ import type { ChangeSetItem } from './types.js';
2
+ import * as t from '@babel/types';
3
+ export declare function calcFinalClasses(previous: string, changes: {
4
+ added: string[];
5
+ removed: string[];
6
+ }): string;
7
+ export declare function findNodeAtLine(ast: t.File, targetLine: number): null;
8
+ export declare function hasCnImport(ast: t.File): boolean;
9
+ export declare function addCnImportIfNotExist(ast: t.File): void;
10
+ export declare function assignFinalValue(ast: t.File, previous: t.JSXAttribute | t.ObjectProperty, changes: {
11
+ added: string[];
12
+ removed: string[];
13
+ }): boolean;
14
+ export declare function updateComponentAttribute(node: t.JSXOpeningElement, delta: {
15
+ added: string[];
16
+ removed: string[];
17
+ }, ast: t.File, propName?: string, path?: string): void;
18
+ export declare function applyChanges(changeSet: ChangeSetItem[]): Promise<boolean>;
19
+ export declare function extractAstroSourceInfo(element: HTMLElement): {
20
+ file: string;
21
+ line: number;
22
+ } | null;
@@ -0,0 +1,234 @@
1
+ import fs from 'fs/promises';
2
+ import * as parser from '@babel/parser';
3
+ import traverse from '@babel/traverse';
4
+ import * as t from '@babel/types';
5
+ import generate from '@babel/generator';
6
+ // Helper function to calculate final classes
7
+ export function calcFinalClasses(previous, changes) {
8
+ const currentClasses = previous.split(/\s+/);
9
+ const classesAfterRemoval = currentClasses.filter((cls) => !changes.removed.includes(cls));
10
+ return [...classesAfterRemoval, ...changes.added].filter(Boolean).join(' ');
11
+ }
12
+ // Helper function to find the node at a specific line number
13
+ export function findNodeAtLine(ast, targetLine) {
14
+ let foundNode = null;
15
+ console.log(`[findNodeAtLine] Searching for JSX component at line ${targetLine}`);
16
+ // @ts-ignore - Traverse is actually callable but TypeScript doesn't recognize it correctly
17
+ traverse(ast, {
18
+ JSXOpeningElement(path) {
19
+ const loc = path.node.loc;
20
+ if (loc && loc.start.line === targetLine) {
21
+ console.log(`[findNodeAtLine] Found matching node:`, {
22
+ type: path.node.type,
23
+ name: path.node.name.type === 'JSXIdentifier'
24
+ ? path.node.name.name
25
+ : 'ComplexName',
26
+ attributes: path.node.attributes.length,
27
+ });
28
+ foundNode = path.node;
29
+ path.stop();
30
+ }
31
+ },
32
+ });
33
+ return foundNode;
34
+ }
35
+ // Helper function to check if the file has the cn import
36
+ export function hasCnImport(ast) {
37
+ let hasImport = false;
38
+ // @ts-ignore - Traverse is actually callable but TypeScript doesn't recognize it correctly
39
+ traverse(ast, {
40
+ ImportDeclaration(path) {
41
+ // Check if it's importing from utility file
42
+ if (t.isStringLiteral(path.node.source) &&
43
+ (path.node.source.value.includes('/utils') ||
44
+ path.node.source.value.includes('/lib/utils'))) {
45
+ // Check if cn is among the imported specifiers
46
+ for (const specifier of path.node.specifiers) {
47
+ if (t.isImportSpecifier(specifier) &&
48
+ t.isIdentifier(specifier.imported) &&
49
+ specifier.imported.name === 'cn') {
50
+ hasImport = true;
51
+ path.stop();
52
+ break;
53
+ }
54
+ }
55
+ }
56
+ },
57
+ });
58
+ return hasImport;
59
+ }
60
+ // Function to add cn import if not present
61
+ export function addCnImportIfNotExist(ast) {
62
+ if (hasCnImport(ast)) {
63
+ return; // Already imported
64
+ }
65
+ // Create a new cn import specifier
66
+ const cnSpecifier = t.importSpecifier(t.identifier('cn'), t.identifier('cn'));
67
+ // Flag to track if we found and modified an existing import
68
+ let cnImportAdded = false;
69
+ // @ts-ignore - Traverse is actually callable but TypeScript doesn't recognize it correctly
70
+ traverse(ast, {
71
+ ImportDeclaration(path) {
72
+ if (t.isStringLiteral(path.node.source) &&
73
+ (path.node.source.value.includes('/utils') ||
74
+ path.node.source.value.includes('/lib/utils'))) {
75
+ path.node.specifiers.push(cnSpecifier);
76
+ cnImportAdded = true;
77
+ path.stop();
78
+ }
79
+ },
80
+ });
81
+ // If we didn't find an existing import, add a new one
82
+ if (!cnImportAdded) {
83
+ const importDeclaration = t.importDeclaration([cnSpecifier], t.stringLiteral('./utils'));
84
+ // Add at the beginning of the file
85
+ if (ast.program.body.length > 0) {
86
+ ast.program.body.unshift(importDeclaration);
87
+ }
88
+ else {
89
+ ast.program.body.push(importDeclaration);
90
+ }
91
+ }
92
+ }
93
+ // Function to assign final class values
94
+ export function assignFinalValue(ast, previous, changes) {
95
+ // Handle string literal
96
+ if (t.isStringLiteral(previous.value)) {
97
+ const str = previous.value.value;
98
+ let finalClasses = calcFinalClasses(str, changes);
99
+ if (finalClasses) {
100
+ previous.value = t.stringLiteral(finalClasses);
101
+ return true;
102
+ }
103
+ return false;
104
+ }
105
+ // Handle JSX expression container with string literal
106
+ if (t.isJSXExpressionContainer(previous.value) &&
107
+ t.isStringLiteral(previous.value.expression)) {
108
+ const str = previous.value.expression.value;
109
+ let finalClasses = calcFinalClasses(str, changes);
110
+ if (finalClasses) {
111
+ previous.value = t.jsxExpressionContainer(t.stringLiteral(finalClasses));
112
+ return true;
113
+ }
114
+ return false;
115
+ }
116
+ // Handle JSX expression container with cn call
117
+ if (t.isJSXExpressionContainer(previous.value)) {
118
+ const expression = previous.value.expression;
119
+ if (t.isCallExpression(expression) &&
120
+ t.isIdentifier(expression.callee) &&
121
+ expression.callee.name === 'cn') {
122
+ if (expression.arguments.length > 0 &&
123
+ t.isStringLiteral(expression.arguments[expression.arguments.length - 1])) {
124
+ // If it's already a cn call with a string as last argument, append to that string
125
+ const lastArg = expression.arguments[expression.arguments.length - 1];
126
+ const newString = calcFinalClasses(lastArg.value, changes);
127
+ if (newString) {
128
+ expression.arguments[expression.arguments.length - 1] =
129
+ t.stringLiteral(newString);
130
+ }
131
+ else {
132
+ // Remove the last argument if it becomes empty
133
+ expression.arguments.pop();
134
+ }
135
+ }
136
+ else {
137
+ // Otherwise add a new string literal argument
138
+ if (changes.added.length > 0) {
139
+ expression.arguments.push(t.stringLiteral(changes.added.join(' ')));
140
+ }
141
+ }
142
+ return true;
143
+ }
144
+ else if (t.isExpression(expression)) {
145
+ // It's another expression, wrap it in cn call
146
+ addCnImportIfNotExist(ast);
147
+ if (changes.added.length > 0) {
148
+ previous.value = t.jsxExpressionContainer(t.callExpression(t.identifier('cn'), [
149
+ expression,
150
+ t.stringLiteral(changes.added.join(' ')),
151
+ ]));
152
+ return true;
153
+ }
154
+ }
155
+ }
156
+ return false;
157
+ }
158
+ // Function to update component attributes
159
+ export function updateComponentAttribute(node, delta, ast, propName = 'className', path) {
160
+ let attr = node.attributes.find((attr) => t.isJSXAttribute(attr) &&
161
+ t.isJSXIdentifier(attr.name) &&
162
+ attr.name.name === propName);
163
+ if (!attr) {
164
+ // If attribute doesn't exist, create it
165
+ attr = t.jsxAttribute(t.jsxIdentifier(propName), t.stringLiteral(''));
166
+ node.attributes.push(attr);
167
+ }
168
+ // Update the attribute directly if no path is provided
169
+ if (!path) {
170
+ assignFinalValue(ast, attr, delta);
171
+ }
172
+ else {
173
+ // Path handling would go here, but that's a more complex case
174
+ // Simplified for this implementation
175
+ console.log(`Path-based updates not fully implemented: ${path}`);
176
+ }
177
+ }
178
+ // Function to handle applying changes to a file
179
+ export async function applyChanges(changeSet) {
180
+ try {
181
+ for (const change of changeSet) {
182
+ const fileContent = await fs.readFile(change.file, 'utf-8');
183
+ // Parse the file with Babel
184
+ const ast = parser.parse(fileContent, {
185
+ sourceType: 'module',
186
+ plugins: ['jsx', 'typescript'],
187
+ });
188
+ if (change.instruction.type === 'class_change') {
189
+ const node = findNodeAtLine(ast, change.line);
190
+ if (!node) {
191
+ console.error(`Could not find node at line ${change.line} in ${change.file}`);
192
+ continue;
193
+ }
194
+ const propName = change.instruction.propName || 'className';
195
+ const delta = change.instruction.delta || { added: [], removed: [] };
196
+ updateComponentAttribute(node, delta, ast, propName, change.instruction.path);
197
+ }
198
+ else if (change.instruction.type === 'replace_text') {
199
+ // Text replacement would go here
200
+ console.log('Text replacement not implemented yet');
201
+ }
202
+ // Generate the updated code
203
+ // @ts-ignore - Generate is actually callable but TypeScript doesn't recognize it correctly
204
+ const output = generate(ast);
205
+ // Write the changes back to the file
206
+ await fs.writeFile(change.file, output.code, 'utf-8');
207
+ }
208
+ return true;
209
+ }
210
+ catch (error) {
211
+ console.error('Error applying changes:', error);
212
+ return false;
213
+ }
214
+ }
215
+ // Extract Astro source information from DOM elements
216
+ export function extractAstroSourceInfo(element) {
217
+ // Astro adds source information in a data attribute like data-astro-source="path:line:column"
218
+ const sourceAttr = element.getAttribute('data-astro-source');
219
+ if (!sourceAttr) {
220
+ return null;
221
+ }
222
+ const parts = sourceAttr.split(':');
223
+ if (parts.length < 2) {
224
+ return null;
225
+ }
226
+ const file = parts[0];
227
+ const lineStr = parts[1] || '1'; // Default to line 1 if not found
228
+ const line = parseInt(lineStr, 10);
229
+ if (!file || isNaN(line)) {
230
+ return null;
231
+ }
232
+ return { file, line };
233
+ }
234
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9UYWlsd2luZEVkaXRvci91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0IsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxRQUFRLE1BQU0saUJBQWlCLENBQUM7QUFFdkMsT0FBTyxLQUFLLENBQUMsTUFBTSxjQUFjLENBQUM7QUFDbEMsT0FBTyxRQUFRLE1BQU0sa0JBQWtCLENBQUM7QUFFeEMsNkNBQTZDO0FBQzdDLE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsUUFBZ0IsRUFDaEIsT0FBK0M7SUFFL0MsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QyxNQUFNLG1CQUFtQixHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQy9DLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUN4QyxDQUFDO0lBQ0YsT0FBTyxDQUFDLEdBQUcsbUJBQW1CLEVBQUUsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM5RSxDQUFDO0FBRUQsNkRBQTZEO0FBQzdELE1BQU0sVUFBVSxjQUFjLENBQUMsR0FBVyxFQUFFLFVBQWtCO0lBQzVELElBQUksU0FBUyxHQUErQixJQUFJLENBQUM7SUFFakQsT0FBTyxDQUFDLEdBQUcsQ0FDVCx3REFBd0QsVUFBVSxFQUFFLENBQ3JFLENBQUM7SUFFRiwyRkFBMkY7SUFDM0YsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUNaLGlCQUFpQixDQUFDLElBQW1DO1lBQ25ELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJ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
@@ -0,0 +1,11 @@
1
+ import { APIMetadata, PublicMetadata } from '@wix/sdk-types';
2
+ export declare const WixBIHeaderName = "x-wix-bi-gateway";
3
+ export type WixBIHeaderValues = {
4
+ ['environment']: 'js-sdk' | string;
5
+ ['package-name']?: string;
6
+ ['method-fqn']?: string;
7
+ ['entity']?: string;
8
+ };
9
+ export declare function biHeaderGenerator(apiMetadata: APIMetadata, publicMetadata?: PublicMetadata, environment?: string): {
10
+ [WixBIHeaderName]: string;
11
+ };
@@ -0,0 +1,18 @@
1
+ export const WixBIHeaderName = 'x-wix-bi-gateway';
2
+ export function biHeaderGenerator(apiMetadata, publicMetadata, environment) {
3
+ return {
4
+ [WixBIHeaderName]: objectToKeyValue({
5
+ environment: `js-sdk${environment ? `-${environment}` : ``}`,
6
+ 'package-name': apiMetadata.packageName ?? publicMetadata?.PACKAGE_NAME,
7
+ 'method-fqn': apiMetadata.methodFqn,
8
+ entity: apiMetadata.entityFqdn,
9
+ }),
10
+ };
11
+ }
12
+ function objectToKeyValue(input) {
13
+ return Object.entries(input)
14
+ .filter(([_, value]) => Boolean(value))
15
+ .map(([key, value]) => `${key}=${value}`)
16
+ .join(',');
17
+ }
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmktaGVhZGVyLWdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2NvbXBvbmVudHMvbG9naW4taGVscGVycy9iaS1oZWFkZXItZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxrQkFBa0IsQ0FBQztBQVNsRCxNQUFNLFVBQVUsaUJBQWlCLENBQy9CLFdBQXdCLEVBQ3hCLGNBQStCLEVBQy9CLFdBQW9CO0lBRXBCLE9BQU87UUFDTCxDQUFDLGVBQWUsQ0FBQyxFQUFFLGdCQUFnQixDQUFDO1lBQ2xDLFdBQVcsRUFBRSxTQUFTLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzVELGNBQWMsRUFBRSxXQUFXLENBQUMsV0FBVyxJQUFJLGNBQWMsRUFBRSxZQUFZO1lBQ3ZFLFlBQVksRUFBRSxXQUFXLENBQUMsU0FBUztZQUNuQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFVBQVU7U0FDL0IsQ0FBQztLQUNILENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxLQUF3QjtJQUNoRCxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1NBQ3pCLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDdEMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1NBQ3hDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNmLENBQUMifQ==
@@ -0,0 +1,4 @@
1
+ export declare function addListener(eventTarget: any, name: string, fn: Function): void;
2
+ export declare function removeListener(eventTarget: any, name: string, fn: Function): void;
3
+ export declare function loadFrame(src: string): HTMLIFrameElement;
4
+ export declare function addPostMessageListener(state: string): Promise<unknown>;
@@ -0,0 +1,44 @@
1
+ export function addListener(eventTarget, name, fn) {
2
+ if (eventTarget.addEventListener) {
3
+ eventTarget.addEventListener(name, fn);
4
+ }
5
+ else {
6
+ eventTarget.attachEvent('on' + name, fn);
7
+ }
8
+ }
9
+ export function removeListener(eventTarget, name, fn) {
10
+ if (eventTarget.removeEventListener) {
11
+ eventTarget.removeEventListener(name, fn);
12
+ }
13
+ else {
14
+ eventTarget.detachEvent('on' + name, fn);
15
+ }
16
+ }
17
+ export function loadFrame(src) {
18
+ const iframe = document.createElement('iframe');
19
+ iframe.style.display = 'none';
20
+ iframe.src = src;
21
+ return document.body.appendChild(iframe);
22
+ }
23
+ export function addPostMessageListener(state) {
24
+ let responseHandler;
25
+ let timeoutId;
26
+ const msgReceivedOrTimeout = new Promise((resolve, reject) => {
27
+ responseHandler = (e) => {
28
+ if (!e.data || e.data.state !== state) {
29
+ // A message not meant for us
30
+ return;
31
+ }
32
+ resolve(e.data);
33
+ };
34
+ addListener(window, 'message', responseHandler);
35
+ timeoutId = setTimeout(() => {
36
+ reject(new Error('OAuth flow timed out'));
37
+ }, 120000);
38
+ });
39
+ return msgReceivedOrTimeout.finally(() => {
40
+ clearTimeout(timeoutId);
41
+ removeListener(window, 'message', responseHandler);
42
+ });
43
+ }
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZyYW1lVXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9jb21wb25lbnRzL2xvZ2luLWhlbHBlcnMvaWZyYW1lVXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLFdBQVcsQ0FBQyxXQUFnQixFQUFFLElBQVksRUFBRSxFQUFZO0lBQ3RFLElBQUksV0FBVyxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDakMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN6QyxDQUFDO1NBQU0sQ0FBQztRQUNOLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsV0FBZ0IsRUFBRSxJQUFZLEVBQUUsRUFBWTtJQUN6RSxJQUFJLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQ3BDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztTQUFNLENBQUM7UUFDTixXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLEdBQVc7SUFDbkMsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoRCxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7SUFDOUIsTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFFakIsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUMzQyxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUFDLEtBQWE7SUFDbEQsSUFBSSxlQUFvQixDQUFDO0lBQ3pCLElBQUksU0FBYyxDQUFDO0lBQ25CLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDM0QsZUFBZSxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUU7WUFDM0IsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssS0FBSyxFQUFFLENBQUM7Z0JBQ3RDLDZCQUE2QjtnQkFDN0IsT0FBTztZQUNULENBQUM7WUFDRCxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xCLENBQUMsQ0FBQztRQUVGLFdBQVcsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBRWhELFNBQVMsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQzFCLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUM7UUFDNUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2IsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUU7UUFDdkMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3hCLGNBQWMsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ3JELENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyJ9
@@ -0,0 +1,39 @@
1
+ export interface OauthPKCE {
2
+ codeVerifier: string;
3
+ codeChallenge: string;
4
+ state: string;
5
+ }
6
+ export interface OauthData extends OauthPKCE {
7
+ originalUri: string;
8
+ redirectUri: string;
9
+ }
10
+ export interface OauthPKCE {
11
+ codeVerifier: string;
12
+ codeChallenge: string;
13
+ state: string;
14
+ }
15
+ export interface Token {
16
+ value: string;
17
+ }
18
+ export interface AccessToken extends Token {
19
+ expiresAt: number;
20
+ }
21
+ export declare enum TokenRole {
22
+ NONE = "none",
23
+ VISITOR = "visitor",
24
+ MEMBER = "member"
25
+ }
26
+ export interface TokenResponse {
27
+ access_token: string;
28
+ expires_in: number;
29
+ refresh_token: string | null;
30
+ token_type: string;
31
+ scope?: string | null;
32
+ }
33
+ export declare const getMemberTokensForDirectLogin: (sessionToken: string) => Promise<{
34
+ accessToken: AccessToken;
35
+ refreshToken: {
36
+ value: string;
37
+ role: TokenRole;
38
+ };
39
+ }>;