@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,117 @@
1
+ import { redirects } from '@wix/redirects';
2
+ import { loadFrame, addPostMessageListener } from './iframeUtils.js';
3
+ import { biHeaderGenerator } from './bi-header-generator.js';
4
+ import { wixContext } from '@wix/sdk-context';
5
+ import { generateRandomCodeVerifier, calculatePKCECodeChallenge, generateRandomState } from 'oauth4webapi';
6
+ const DEFAULT_API_URL = 'www.wixapis.com';
7
+ export var TokenRole;
8
+ (function (TokenRole) {
9
+ TokenRole["NONE"] = "none";
10
+ TokenRole["VISITOR"] = "visitor";
11
+ TokenRole["MEMBER"] = "member";
12
+ })(TokenRole || (TokenRole = {}));
13
+ const generatePKCE = async () => {
14
+ const codeVerifier = generateRandomCodeVerifier();
15
+ const pkceState = await calculatePKCECodeChallenge(codeVerifier);
16
+ return {
17
+ codeChallenge: pkceState,
18
+ codeVerifier: codeVerifier,
19
+ state: generateRandomState(),
20
+ };
21
+ };
22
+ const getAuthorizationUrlWithOptions = async (oauthData, responseMode, prompt, sessionToken) => {
23
+ const { redirectSession } = await redirects.createRedirectSession({
24
+ auth: {
25
+ authRequest: {
26
+ redirectUri: oauthData.redirectUri,
27
+ ...(oauthData.redirectUri && {
28
+ redirectUri: oauthData.redirectUri,
29
+ }),
30
+ codeChallenge: oauthData.codeChallenge,
31
+ codeChallengeMethod: 'S256',
32
+ responseMode,
33
+ responseType: 'code',
34
+ scope: 'offline_access',
35
+ state: oauthData.state,
36
+ clientId: wixContext['clientId'],
37
+ ...(sessionToken && { sessionToken }),
38
+ },
39
+ prompt: redirects.Prompt[prompt],
40
+ },
41
+ });
42
+ return {
43
+ authUrl: redirectSession.fullUrl,
44
+ authorizationEndpoint: redirectSession.urlDetails.endpoint,
45
+ sessionToken: redirectSession.sessionToken,
46
+ };
47
+ };
48
+ const fetchTokens = async (payload, headers = {}) => {
49
+ const res = await fetch(`https://${DEFAULT_API_URL}/oauth2/token`, {
50
+ method: 'POST',
51
+ body: JSON.stringify(payload),
52
+ headers: {
53
+ ...biHeaderGenerator({
54
+ entityFqdn: 'wix.identity.oauth.v1.refresh_token',
55
+ methodFqn: 'wix.identity.oauth2.v1.Oauth2Ng.Token',
56
+ packageName: '@wix/sdk',
57
+ }),
58
+ 'Content-Type': 'application/json',
59
+ ...headers,
60
+ },
61
+ });
62
+ if (res.status !== 200) {
63
+ let responseJson;
64
+ try {
65
+ responseJson = await res.json();
66
+ }
67
+ catch { }
68
+ throw new Error(`Failed to fetch tokens from OAuth API: ${res.statusText}. request id: ${res.headers.get('x-request-id')}. ${responseJson ? `Response: ${JSON.stringify(responseJson)}` : ''}`);
69
+ }
70
+ const json = await res.json();
71
+ return json;
72
+ };
73
+ function getCurrentDate() {
74
+ return Math.floor(Date.now() / 1000);
75
+ }
76
+ function createAccessToken(accessToken, expiresIn) {
77
+ const now = getCurrentDate();
78
+ return { value: accessToken, expiresAt: Number(expiresIn) + now };
79
+ }
80
+ const getMemberTokens = async (code, state, oauthData) => {
81
+ if (!code || !state) {
82
+ throw new Error('Missing code or _state');
83
+ }
84
+ else if (state !== oauthData.state) {
85
+ throw new Error('Invalid _state');
86
+ }
87
+ const tokensResponse = await fetchTokens({
88
+ clientId: wixContext['clientId'],
89
+ grantType: 'authorization_code',
90
+ ...(oauthData.redirectUri && { redirectUri: oauthData.redirectUri }),
91
+ code,
92
+ codeVerifier: oauthData.codeVerifier,
93
+ });
94
+ return {
95
+ accessToken: createAccessToken(tokensResponse.access_token, tokensResponse.expires_in),
96
+ refreshToken: {
97
+ value: tokensResponse.refresh_token,
98
+ role: TokenRole.MEMBER,
99
+ },
100
+ };
101
+ };
102
+ export const getMemberTokensForDirectLogin = async (sessionToken) => {
103
+ const oauthPKCE = await generatePKCE();
104
+ const { authUrl } = await getAuthorizationUrlWithOptions(oauthPKCE, 'web_message', 'none', sessionToken);
105
+ const iframePromise = addPostMessageListener(oauthPKCE.state);
106
+ const iframeEl = loadFrame(authUrl);
107
+ return iframePromise
108
+ .then((res) => {
109
+ return getMemberTokens(res.code, res.state, oauthPKCE);
110
+ })
111
+ .finally(() => {
112
+ if (document.body.contains(iframeEl)) {
113
+ iframeEl.parentElement?.removeChild(iframeEl);
114
+ }
115
+ });
116
+ };
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4taGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2NvbXBvbmVudHMvbG9naW4taGVscGVycy9sb2dpbi1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSwwQkFBMEIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUzRyxNQUFNLGVBQWUsR0FBRyxpQkFBaUIsQ0FBQztBQTJCMUMsTUFBTSxDQUFOLElBQVksU0FJWDtBQUpELFdBQVksU0FBUztJQUNuQiwwQkFBYSxDQUFBO0lBQ2IsZ0NBQW1CLENBQUE7SUFDbkIsOEJBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUpXLFNBQVMsS0FBVCxTQUFTLFFBSXBCO0FBRUQsTUFBTSxZQUFZLEdBQUcsS0FBSyxJQUF3QixFQUFFO0lBQ2xELE1BQU0sWUFBWSxHQUFHLDBCQUEwQixFQUFFLENBQUM7SUFDbEQsTUFBTSxTQUFTLEdBQUcsTUFBTSwwQkFBMEIsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqRSxPQUFPO1FBQ0wsYUFBYSxFQUFFLFNBQVM7UUFDeEIsWUFBWSxFQUFFLFlBQVk7UUFDMUIsS0FBSyxFQUFFLG1CQUFtQixFQUFFO0tBQzdCLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLDhCQUE4QixHQUFHLEtBQUssRUFDMUMsU0FBNkIsRUFDN0IsWUFBa0QsRUFDbEQsTUFBd0IsRUFDeEIsWUFBcUIsRUFDckIsRUFBRTtJQUNGLE1BQU0sRUFBRSxlQUFlLEVB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
@@ -0,0 +1,14 @@
1
+ import React from "react";
2
+ interface EditorPanelProps {
3
+ selectedElement: HTMLElement | null;
4
+ selectedTextNode: Node | null;
5
+ onSaveChanges: () => Promise<void>;
6
+ onMainComponentCheckbox: (e: React.ChangeEvent<HTMLInputElement>) => void;
7
+ onChange: () => void;
8
+ onClose: () => void;
9
+ }
10
+ interface EditorPanelComponent extends React.FC<EditorPanelProps> {
11
+ close: () => void;
12
+ }
13
+ declare const EditorPanel: EditorPanelComponent;
14
+ export default EditorPanel;