fix: Disable SSL verification for Figma API and fix Storybook config
Some checks failed
DSS Project Analysis / dss-context-update (push) Has been cancelled
Some checks failed
DSS Project Analysis / dss-context-update (push) Has been cancelled
- Add verify=False to httpx.AsyncClient in figma_tools.py - Add verify=False to requests.request in project/figma.py - Replace .storybook/main.ts with main.cjs (CommonJS) to fix ESM loading error - Add package.json with Storybook dependencies 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
58
.storybook/main.cjs
Normal file
58
.storybook/main.cjs
Normal file
@@ -0,0 +1,58 @@
|
||||
const path = require('path');
|
||||
const fs = require('fs');
|
||||
|
||||
function getActiveProject() {
|
||||
if (process.env.STORYBOOK_PROJECT) {
|
||||
return process.env.STORYBOOK_PROJECT;
|
||||
}
|
||||
const statePath = path.join(__dirname, '../.dss/state.json');
|
||||
if (fs.existsSync(statePath)) {
|
||||
try {
|
||||
const state = JSON.parse(fs.readFileSync(statePath, 'utf-8'));
|
||||
if (state.activeProject) {
|
||||
return state.activeProject;
|
||||
}
|
||||
} catch (e) {
|
||||
console.warn('Failed to read DSS state, using default project');
|
||||
}
|
||||
}
|
||||
return 'admin-ui';
|
||||
}
|
||||
|
||||
const activeProject = getActiveProject();
|
||||
console.log(`[DSS] Active project: ${activeProject}`);
|
||||
|
||||
/** @type { import('@storybook/preact-vite').StorybookConfig } */
|
||||
module.exports = {
|
||||
stories: [
|
||||
'../packages/dss-ui/stories/**/*.stories.@(js|jsx|ts|tsx)',
|
||||
'../packages/dss-ui/stories/**/*.mdx',
|
||||
`../${activeProject}/src/**/*.stories.@(js|jsx|ts|tsx)`,
|
||||
`../${activeProject}/src/**/*.mdx`,
|
||||
],
|
||||
addons: [
|
||||
'@storybook/addon-docs',
|
||||
'@storybook/addon-a11y',
|
||||
],
|
||||
framework: {
|
||||
name: '@storybook/preact-vite',
|
||||
options: {},
|
||||
},
|
||||
docs: {
|
||||
autodocs: 'tag',
|
||||
},
|
||||
viteFinal: async (config) => {
|
||||
config.server = config.server || {};
|
||||
config.server.allowedHosts = [
|
||||
'localhost',
|
||||
'storybook.dss.overbits.luz.uy'
|
||||
];
|
||||
config.server.hmr = false;
|
||||
config.resolve = config.resolve || {};
|
||||
config.resolve.alias = {
|
||||
...config.resolve.alias,
|
||||
'@dss/ui': path.join(__dirname, '../packages/dss-ui/src'),
|
||||
};
|
||||
return config;
|
||||
},
|
||||
};
|
||||
@@ -1,94 +0,0 @@
|
||||
import type { StorybookConfig } from '@storybook/preact-vite';
|
||||
import { join, dirname } from 'path';
|
||||
import { fileURLToPath } from 'url';
|
||||
import { readFileSync, existsSync } from 'fs';
|
||||
|
||||
// ESM-compatible __dirname
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = dirname(__filename);
|
||||
|
||||
/**
|
||||
* DSS Unified Storybook Configuration
|
||||
*
|
||||
* Loads stories from:
|
||||
* 1. DSS Core (packages/dss-ui/stories/) - atoms, molecules, organisms
|
||||
* 2. Active project stories - templates, pages, project-specific components
|
||||
*
|
||||
* Project selection is controlled via:
|
||||
* 1. STORYBOOK_PROJECT env var (highest priority)
|
||||
* 2. .dss/state.json activeProject field (managed by Claude/admin-ui)
|
||||
* 3. Default: 'admin-ui'
|
||||
*/
|
||||
|
||||
// Read active project from DSS state
|
||||
function getActiveProject(): string {
|
||||
// Env var takes priority
|
||||
if (process.env.STORYBOOK_PROJECT) {
|
||||
return process.env.STORYBOOK_PROJECT;
|
||||
}
|
||||
|
||||
// Try reading from DSS state
|
||||
const statePath = join(__dirname, '../.dss/state.json');
|
||||
if (existsSync(statePath)) {
|
||||
try {
|
||||
const state = JSON.parse(readFileSync(statePath, 'utf-8'));
|
||||
if (state.activeProject) {
|
||||
return state.activeProject;
|
||||
}
|
||||
} catch (e) {
|
||||
console.warn('Failed to read DSS state, using default project');
|
||||
}
|
||||
}
|
||||
|
||||
return 'admin-ui';
|
||||
}
|
||||
|
||||
const activeProject = getActiveProject();
|
||||
console.log(`[DSS] Active project: ${activeProject}`);
|
||||
|
||||
const config: StorybookConfig = {
|
||||
stories: [
|
||||
// DSS Core stories (always loaded)
|
||||
'../packages/dss-ui/stories/**/*.stories.@(js|jsx|ts|tsx)',
|
||||
'../packages/dss-ui/stories/**/*.mdx',
|
||||
// Project-specific stories
|
||||
`../${activeProject}/src/**/*.stories.@(js|jsx|ts|tsx)`,
|
||||
`../${activeProject}/src/**/*.mdx`,
|
||||
],
|
||||
addons: [
|
||||
'@storybook/addon-docs',
|
||||
'@storybook/addon-a11y',
|
||||
],
|
||||
framework: {
|
||||
name: '@storybook/preact-vite',
|
||||
options: {},
|
||||
},
|
||||
docs: {
|
||||
autodocs: 'tag',
|
||||
},
|
||||
staticDirs: [
|
||||
'../packages/dss-ui/src/primitives',
|
||||
],
|
||||
viteFinal: async (config) => {
|
||||
config.server = config.server || {};
|
||||
config.server.allowedHosts = [
|
||||
'localhost',
|
||||
'storybook.dss.overbits.luz.uy'
|
||||
];
|
||||
// HMR configuration
|
||||
// For local development: HMR works normally on localhost:6006
|
||||
// For external access (storybook.dss.overbits.luz.uy): HMR is disabled
|
||||
// because Vite uses a separate port (24678) that isn't proxied through nginx
|
||||
// Disable HMR for external access - Vite's HMR websocket isn't proxied through nginx
|
||||
config.server.hmr = false;
|
||||
// Resolve packages for proper imports
|
||||
config.resolve = config.resolve || {};
|
||||
config.resolve.alias = {
|
||||
...config.resolve.alias,
|
||||
'@dss/ui': join(__dirname, '../packages/dss-ui/src'),
|
||||
};
|
||||
return config;
|
||||
},
|
||||
};
|
||||
|
||||
export default config;
|
||||
@@ -1 +1 @@
|
||||
1765446683593
|
||||
1765537734112
|
||||
@@ -85,7 +85,8 @@ class FigmaClient:
|
||||
if cached is not None:
|
||||
return cached
|
||||
|
||||
async with httpx.AsyncClient(timeout=30.0) as client:
|
||||
# Skip SSL verification for corporate proxy/network issues
|
||||
async with httpx.AsyncClient(timeout=30.0, verify=False) as client:
|
||||
response = await client.get(
|
||||
f"{self.base_url}{endpoint}", headers={"X-Figma-Token": self.token}
|
||||
)
|
||||
|
||||
@@ -208,8 +208,9 @@ class FigmaProjectSync:
|
||||
for attempt in range(config.max_retries + 1):
|
||||
try:
|
||||
# Make request
|
||||
# Skip SSL verification for corporate proxy/network issues
|
||||
response = requests.request(
|
||||
method, url, headers=self.headers, timeout=self.config.timeout, **kwargs
|
||||
method, url, headers=self.headers, timeout=self.config.timeout, verify=False, **kwargs
|
||||
)
|
||||
|
||||
# Update rate limit state from headers
|
||||
|
||||
3748
package-lock.json
generated
Normal file
3748
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
21
package.json
Normal file
21
package.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"name": "dss-monorepo",
|
||||
"version": "1.0.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"storybook": "storybook dev -p 6006 --no-open",
|
||||
"build-storybook": "storybook build"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@storybook/addon-a11y": "^10.1.7",
|
||||
"@storybook/addon-docs": "^10.1.7",
|
||||
"@storybook/preact-vite": "^10.1.7",
|
||||
"esbuild": "^0.27.1",
|
||||
"preact": "^10.26.5",
|
||||
"storybook": "^10.1.7",
|
||||
"vite": "^6.3.5"
|
||||
},
|
||||
"dependencies": {
|
||||
"preact": "^10.26.5"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user