unframer 2.24.2 → 2.24.4
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/dist/cli.d.ts +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +10 -30
- package/dist/cli.js.map +1 -1
- package/dist/css.d.ts.map +1 -1
- package/dist/esbuild.d.ts +1 -1
- package/dist/esbuild.d.ts.map +1 -1
- package/dist/esbuild.js +17 -13
- package/dist/esbuild.js.map +1 -1
- package/dist/exporter.d.ts.map +1 -1
- package/dist/exporter.js +4 -1
- package/dist/exporter.js.map +1 -1
- package/dist/framer.d.ts.map +1 -1
- package/dist/framer.js +20 -11
- package/dist/framer.js.map +1 -1
- package/dist/react.d.ts.map +1 -1
- package/dist/sentry.d.ts +2 -0
- package/dist/sentry.d.ts.map +1 -0
- package/dist/sentry.js +23 -0
- package/dist/sentry.js.map +1 -0
- package/dist/utils.d.ts +16 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +23 -3
- package/dist/utils.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/esm/cli.d.ts +1 -0
- package/esm/cli.d.ts.map +1 -1
- package/esm/cli.js +10 -30
- package/esm/cli.js.map +1 -1
- package/esm/css.d.ts.map +1 -1
- package/esm/esbuild.d.ts +1 -1
- package/esm/esbuild.d.ts.map +1 -1
- package/esm/esbuild.js +13 -6
- package/esm/esbuild.js.map +1 -1
- package/esm/exporter.d.ts.map +1 -1
- package/esm/exporter.js +4 -1
- package/esm/exporter.js.map +1 -1
- package/esm/framer.d.ts.map +1 -1
- package/esm/framer.js +20 -11
- package/esm/framer.js.map +1 -1
- package/esm/react.d.ts.map +1 -1
- package/esm/sentry.d.ts +2 -0
- package/esm/sentry.d.ts.map +1 -0
- package/esm/sentry.js +20 -0
- package/esm/sentry.js.map +1 -0
- package/esm/utils.d.ts +16 -1
- package/esm/utils.d.ts.map +1 -1
- package/esm/utils.js +22 -2
- package/esm/utils.js.map +1 -1
- package/esm/version.d.ts +1 -1
- package/esm/version.js +1 -1
- package/package.json +5 -4
- package/src/cli.tsx +13 -31
- package/src/esbuild.ts +16 -7
- package/src/exporter.ts +4 -1
- package/src/framer.js +40 -11
- package/src/sentry.ts +23 -0
- package/src/utils.ts +28 -2
- package/src/version.ts +1 -1
package/esm/react.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"AAGA,OAAO,EACH,wBAAwB,EACxB,aAAa,EAMhB,MAAM,OAAO,CAAA;AACd,OAAO,EAEH,sBAAsB,EAEzB,MAAM,UAAU,CAAA;AAYjB,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,sBAAsB,CAAA;AA8BpE;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAAE,UAAwB,EAAE;;CAAA,GAAG,GAAG,CAmD9D;AAED,eAAO,MAAM,qBAAqB,GAC9B,CAAC,SAAS,aAAa,CAAC;IAAE,OAAO,CAAC,EAAE,GAAG,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"AAGA,OAAO,EACH,wBAAwB,EACxB,aAAa,EAMhB,MAAM,OAAO,CAAA;AACd,OAAO,EAEH,sBAAsB,EAEzB,MAAM,UAAU,CAAA;AAYjB,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,sBAAsB,CAAA;AA8BpE;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAAE,UAAwB,EAAE;;CAAA,GAAG,GAAG,CAmD9D;AAED,eAAO,MAAM,qBAAqB,GAC9B,CAAC,SAAS,aAAa,CAAC;IAAE,OAAO,CAAC,EAAE,GAAG,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,qDAK/D;IACC,SAAS,EAAE,CAAC,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAC,kBAAkB,EAAE,wBAAwB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;CAC/E,GAAG,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,KAAG,GA6ElD,CAAA;AAsBD,OAAO,KAAK,MAAM,OAAO,CAAA;AAsCzB,wBAAgB,mBAAmB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;;;CAAA,OAGtD;AAQD,wBAAgB,WAAW,CAAC,EACxB,IAAI,EACJ,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,GAAG,IAAI,EACV;;;;;;;CAAA,8CA4CA;AAED,wBAAgB,gBAAgB,CAAC,EAC7B,MAAM,EAAE,OAAO,EACf,QAAQ,EACR,YAAY,EACZ,MAAM,EAEN,OAAO,GACV;;;;;;CAAA,8CA6BA;AAyBD,KAAK,qBAAqB,GAAG;IACzB,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAChC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC5B,CAAA;AAMD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,8CAM5D"}
|
package/esm/sentry.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sentry.d.ts","sourceRoot":"","sources":["../src/sentry.ts"],"names":[],"mappings":"AAKA,wBAAsB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,iBAiB7D"}
|
package/esm/sentry.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const SENTRY_DSN = 'https://67125acb9a41f616144a07c90a16775e@o4508014272446464.ingest.de.sentry.io/4509202968674384';
|
|
2
|
+
let sentry = null;
|
|
3
|
+
export async function notifyError(error, msg) {
|
|
4
|
+
console.error(msg, error);
|
|
5
|
+
if (!sentry) {
|
|
6
|
+
const mod = await import('@sentry/node');
|
|
7
|
+
mod.init({
|
|
8
|
+
dsn: SENTRY_DSN,
|
|
9
|
+
beforeSend(event) {
|
|
10
|
+
if (event?.['name'] === 'AbortError')
|
|
11
|
+
return null;
|
|
12
|
+
return event;
|
|
13
|
+
},
|
|
14
|
+
});
|
|
15
|
+
sentry = mod;
|
|
16
|
+
}
|
|
17
|
+
sentry.captureException(error, { extra: { msg } });
|
|
18
|
+
await sentry.flush(1000);
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=sentry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sentry.js","sourceRoot":"","sources":["../src/sentry.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GACZ,iGAAiG,CAAA;AAErG,IAAI,MAAM,GAAyC,IAAI,CAAA;AAEvD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAc,EAAE,GAAY;IAC1D,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAEzB,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAA;QACxC,GAAG,CAAC,IAAI,CAAC;YACL,GAAG,EAAE,UAAU;YACf,UAAU,CAAC,KAAK;gBACZ,IAAI,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,YAAY;oBAAE,OAAO,IAAI,CAAA;gBACjD,OAAO,KAAK,CAAA;YAChB,CAAC;SACJ,CAAC,CAAA;QACF,MAAM,GAAG,GAAG,CAAA;IAChB,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAA;IAClD,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AAC5B,CAAC"}
|
package/esm/utils.d.ts
CHANGED
|
@@ -1,8 +1,23 @@
|
|
|
1
|
-
|
|
1
|
+
import { Agent } from 'undici';
|
|
2
2
|
export declare function terminalMarkdown(markdown: string): string | Promise<string>;
|
|
3
|
+
export declare const dispatcher: Agent;
|
|
3
4
|
export declare const logger: {
|
|
4
5
|
debug: boolean;
|
|
5
6
|
log(...args: any[]): void;
|
|
7
|
+
start(x?: string): void;
|
|
8
|
+
stop(x?: string): void;
|
|
9
|
+
info(...args: any[]): void;
|
|
10
|
+
update(...args: any[]): void;
|
|
11
|
+
green(...args: any[]): void;
|
|
12
|
+
error(...args: any[]): void;
|
|
13
|
+
};
|
|
14
|
+
export declare const spinner: {
|
|
15
|
+
debug: boolean;
|
|
16
|
+
log(...args: any[]): void;
|
|
17
|
+
start(x?: string): void;
|
|
18
|
+
stop(x?: string): void;
|
|
19
|
+
info(...args: any[]): void;
|
|
20
|
+
update(...args: any[]): void;
|
|
6
21
|
green(...args: any[]): void;
|
|
7
22
|
error(...args: any[]): void;
|
|
8
23
|
};
|
package/esm/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,EACH,KAAK,EAKR,MAAM,QAAQ,CAAA;AAQf,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,4BAEhD;AAED,eAAO,MAAM,UAAU,OAGrB,CAAA;AAKF,eAAO,MAAM,MAAM;;;cAQL,MAAM;aAIP,MAAM;;;;;CAgBlB,CAAA;AAED,eAAO,MAAM,OAAO;;;cAtBN,MAAM;aAIP,MAAM;;;;;CAkBU,CAAA;AAE7B,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,UAQ/C;AAED,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,oBAE/B;AAUD,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,UAkBpC;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAE5E;AAED,eAAO,MAAM,qBAAqB,oBAAsC,CAAA"}
|
package/esm/utils.js
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import pico from 'picocolors';
|
|
2
|
+
import { Agent, } from 'undici';
|
|
2
3
|
import { marked } from 'marked';
|
|
3
4
|
import { markedTerminal } from 'marked-terminal';
|
|
4
|
-
import { createSpinner } from 'nanospinner';
|
|
5
|
-
export const spinner = createSpinner('Downloading Framer Components');
|
|
6
5
|
marked.use(markedTerminal());
|
|
7
6
|
export function terminalMarkdown(markdown) {
|
|
8
7
|
return marked(markdown);
|
|
9
8
|
}
|
|
9
|
+
export const dispatcher = new Agent({
|
|
10
|
+
keepAliveTimeout: 20,
|
|
11
|
+
keepAliveMaxTimeout: 20,
|
|
12
|
+
});
|
|
10
13
|
const shouldDebugUnframer = !!process.env.DEBUG_UNFRAMER;
|
|
11
14
|
const prefix = '[unframer]';
|
|
12
15
|
export const logger = {
|
|
@@ -17,6 +20,22 @@ export const logger = {
|
|
|
17
20
|
}
|
|
18
21
|
console.log(prefix, ...args);
|
|
19
22
|
},
|
|
23
|
+
start(x) {
|
|
24
|
+
if (!x)
|
|
25
|
+
return;
|
|
26
|
+
console.log(prefix, x);
|
|
27
|
+
},
|
|
28
|
+
stop(x) {
|
|
29
|
+
if (!x)
|
|
30
|
+
return;
|
|
31
|
+
console.log(prefix, x);
|
|
32
|
+
},
|
|
33
|
+
info(...args) {
|
|
34
|
+
console.log(prefix, ...args);
|
|
35
|
+
},
|
|
36
|
+
update(...args) {
|
|
37
|
+
console.log(prefix, ...args);
|
|
38
|
+
},
|
|
20
39
|
green(...args) {
|
|
21
40
|
console.log([prefix, ...args].map((x) => pico.green(x)).join(' '));
|
|
22
41
|
},
|
|
@@ -24,6 +43,7 @@ export const logger = {
|
|
|
24
43
|
console.error([prefix, ...args].map((x) => pico.red(x)).join(' '));
|
|
25
44
|
},
|
|
26
45
|
};
|
|
46
|
+
export const spinner = logger;
|
|
27
47
|
export function componentNameToPath(name) {
|
|
28
48
|
return (name
|
|
29
49
|
.split('/')
|
package/esm/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/esm/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "2.24.
|
|
1
|
+
export declare const version = "2.24.4";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/esm/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const version = '2.24.
|
|
1
|
+
export const version = '2.24.4';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "unframer",
|
|
3
|
-
"version": "2.24.
|
|
3
|
+
"version": "2.24.4",
|
|
4
4
|
"description": "Import Framer components directly in your React app, type safe and customizable",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"repository": "https://github.com/remorses/unframer",
|
|
@@ -42,20 +42,21 @@
|
|
|
42
42
|
"node": ">=18.0.0"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
+
"@sentry/node": "^9.13.0",
|
|
45
46
|
"async-sema": "^3.1.1",
|
|
46
47
|
"cac": "^6.7.14",
|
|
47
|
-
"esbuild": "^0.
|
|
48
|
+
"esbuild": "^0.25.3",
|
|
48
49
|
"esbuild-plugins-node-modules-polyfill": "^1.6.8",
|
|
49
50
|
"find-up": "^7.0.0",
|
|
50
51
|
"json5": "^2.2.3",
|
|
51
52
|
"marked": "^15.0.6",
|
|
52
53
|
"marked-terminal": "^7.2.1",
|
|
53
54
|
"nanospinner": "^1.2.2",
|
|
54
|
-
"node-fetch-commonjs": "^3.3.2",
|
|
55
55
|
"picocolors": "^1.1.1",
|
|
56
56
|
"real-framer-motion": "npm:framer-motion@12.0.6",
|
|
57
57
|
"spiceflow": "^1.6.1",
|
|
58
|
-
"string-dedent": "^3.0.1"
|
|
58
|
+
"string-dedent": "^3.0.1",
|
|
59
|
+
"undici": "^7.8.0"
|
|
59
60
|
},
|
|
60
61
|
"devDependencies": {
|
|
61
62
|
"@babel/core": "^7.26.7",
|
package/src/cli.tsx
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { setMaxListeners } from 'events'
|
|
2
|
+
import { fetch } from 'undici'
|
|
3
|
+
import './sentry.js'
|
|
2
4
|
import JSON from 'json5'
|
|
3
5
|
import { bundle, StyleToken } from './exporter.js'
|
|
4
6
|
import { createClient } from './generated/api-client.js'
|
|
@@ -10,11 +12,13 @@ import path, { basename } from 'path'
|
|
|
10
12
|
import { BreakpointSizes } from './css.js'
|
|
11
13
|
import {
|
|
12
14
|
componentNameToPath,
|
|
15
|
+
dispatcher,
|
|
13
16
|
isTruthy,
|
|
14
17
|
logger,
|
|
15
18
|
sleep,
|
|
16
19
|
spinner,
|
|
17
20
|
} from './utils.js'
|
|
21
|
+
import { notifyError } from './sentry.js'
|
|
18
22
|
const configNames = ['unframer.config.json', 'unframer.json']
|
|
19
23
|
|
|
20
24
|
export const cli = cac('unframer')
|
|
@@ -55,18 +59,22 @@ cli.command('[projectId]', 'Run unframer with optional project ID')
|
|
|
55
59
|
url:
|
|
56
60
|
process.env.UNFRAMER_SERVER_URL ||
|
|
57
61
|
'https://unframer.co',
|
|
62
|
+
|
|
58
63
|
})
|
|
59
64
|
|
|
65
|
+
spinner.start(`Fetching config for project ${projectId}`)
|
|
60
66
|
const { data, error } =
|
|
61
67
|
await client.api.plugins.reactExportPlugin
|
|
62
68
|
.project({ projectId })
|
|
63
69
|
.get()
|
|
64
70
|
if (error) {
|
|
65
|
-
|
|
71
|
+
spinner.error('Error fetching project data:')
|
|
72
|
+
console.error(error)
|
|
66
73
|
throw error
|
|
67
74
|
}
|
|
75
|
+
spinner.info(`Got Framer project data`)
|
|
68
76
|
const websiteUrl = data?.project?.websiteUrl
|
|
69
|
-
|
|
77
|
+
|
|
70
78
|
const projectName = data?.project?.projectName || ''
|
|
71
79
|
if (projectName) {
|
|
72
80
|
spinner.info(`Using project: ${projectName}`)
|
|
@@ -127,6 +135,7 @@ cli.command('[projectId]', 'Run unframer with optional project ID')
|
|
|
127
135
|
while (Date.now() - startTime < 30 * 60 * 1000) {
|
|
128
136
|
const etag = await fetch(websiteUrl, {
|
|
129
137
|
method: 'HEAD',
|
|
138
|
+
dispatcher,
|
|
130
139
|
})
|
|
131
140
|
.then((response) => response.headers.get('etag'))
|
|
132
141
|
.catch((error) => {
|
|
@@ -179,7 +188,8 @@ cli.command('[projectId]', 'Run unframer with optional project ID')
|
|
|
179
188
|
})
|
|
180
189
|
await buildContext.dispose?.()
|
|
181
190
|
} catch (error) {
|
|
182
|
-
|
|
191
|
+
notifyError(error)
|
|
192
|
+
|
|
183
193
|
throw error
|
|
184
194
|
}
|
|
185
195
|
})
|
|
@@ -223,34 +233,6 @@ cli.command('init', 'Init the unframer.config.json config').action(
|
|
|
223
233
|
},
|
|
224
234
|
)
|
|
225
235
|
|
|
226
|
-
function safeJsonParse(json: string) {
|
|
227
|
-
try {
|
|
228
|
-
return JSON.parse(json)
|
|
229
|
-
} catch (e) {
|
|
230
|
-
return null
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
function pluck<T, K extends keyof T>(o: T, names: K[]): { [k: string]: T[K] } {
|
|
235
|
-
return Object.fromEntries(names.map((n) => [n, o[n]]))
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
function getNewNames(oldConfig: Config, newConfig: Config) {
|
|
239
|
-
// get the new names, also check if the previous url (object value) has changed
|
|
240
|
-
const oldKeys = Object.keys(oldConfig.components)
|
|
241
|
-
const newKeys = Object.keys(newConfig.components)
|
|
242
|
-
const newNames = newKeys.filter((key) => {
|
|
243
|
-
if (!oldKeys.includes(key)) {
|
|
244
|
-
return true
|
|
245
|
-
}
|
|
246
|
-
if (oldConfig.components[key] !== newConfig.components[key]) {
|
|
247
|
-
return true
|
|
248
|
-
}
|
|
249
|
-
return false
|
|
250
|
-
})
|
|
251
|
-
return newNames
|
|
252
|
-
}
|
|
253
|
-
|
|
254
236
|
export type Config = {
|
|
255
237
|
components: {
|
|
256
238
|
[name: string]: string
|
package/src/esbuild.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import { logger } from './utils'
|
|
1
|
+
import { fetch } from 'undici'
|
|
2
|
+
import { dispatcher, logger, spinner } from './utils'
|
|
4
3
|
|
|
5
4
|
import { Plugin, transform, type OnResolveArgs } from 'esbuild'
|
|
6
5
|
import { resolvePackage } from './exporter'
|
|
@@ -47,7 +46,7 @@ export function esbuildPluginBundleDependencies({
|
|
|
47
46
|
externalPackages = [...defaultExternalPackages, ...externalPackages]
|
|
48
47
|
// console.log(externalPackages)
|
|
49
48
|
const codeCache = new Map()
|
|
50
|
-
|
|
49
|
+
|
|
51
50
|
spinner.start()
|
|
52
51
|
|
|
53
52
|
const plugin: Plugin = {
|
|
@@ -173,7 +172,10 @@ export function esbuildPluginBundleDependencies({
|
|
|
173
172
|
logger.log('fetching', url, 'because of', args.path)
|
|
174
173
|
spinner.update(`Fetching ${url.replace(/https?:\/\//, '')}`)
|
|
175
174
|
|
|
176
|
-
const res = await fetchWithRetry(resolved, {
|
|
175
|
+
const res = await fetchWithRetry(resolved, {
|
|
176
|
+
signal,
|
|
177
|
+
dispatcher,
|
|
178
|
+
})
|
|
177
179
|
if (!res.ok) {
|
|
178
180
|
throw new Error(
|
|
179
181
|
`Cannot fetch ${resolved}: ${res.status} ${res.statusText}`,
|
|
@@ -274,6 +276,7 @@ export async function recursiveResolveRedirect(
|
|
|
274
276
|
let res = await fetchWithRetry(url, {
|
|
275
277
|
redirect: 'manual',
|
|
276
278
|
method: 'HEAD',
|
|
279
|
+
dispatcher,
|
|
277
280
|
signal: signal,
|
|
278
281
|
})
|
|
279
282
|
const loc = res.headers.get('location')
|
|
@@ -284,8 +287,14 @@ export async function recursiveResolveRedirect(
|
|
|
284
287
|
|
|
285
288
|
return url
|
|
286
289
|
}
|
|
287
|
-
|
|
288
|
-
|
|
290
|
+
export const fetchWithRetry = retryTwice(
|
|
291
|
+
(url: string, options?: RequestInit) => {
|
|
292
|
+
const timeout = setTimeout(() => {
|
|
293
|
+
logger.error('fetch taking more than 5s', url)
|
|
294
|
+
}, 5000)
|
|
295
|
+
return fetch(url, options as any).finally(() => clearTimeout(timeout))
|
|
296
|
+
},
|
|
297
|
+
) as typeof fetch
|
|
289
298
|
|
|
290
299
|
export function retryTwice<F extends Function>(fn: Function): Function {
|
|
291
300
|
return async (...args) => {
|
package/src/exporter.ts
CHANGED
|
@@ -39,6 +39,8 @@ import {
|
|
|
39
39
|
spinner,
|
|
40
40
|
terminalMarkdown,
|
|
41
41
|
} from './utils.js'
|
|
42
|
+
import { error } from 'console'
|
|
43
|
+
import { notifyError } from './sentry'
|
|
42
44
|
|
|
43
45
|
export type StyleToken = {
|
|
44
46
|
id: string
|
|
@@ -569,7 +571,7 @@ export async function bundle({
|
|
|
569
571
|
const prop = findExampleProperty(exampleComponent?.propertyControls)
|
|
570
572
|
const propStr = prop ? ` ${prop}='example'` : ''
|
|
571
573
|
const responsiveComponent = dedent`
|
|
572
|
-
{/* use .Responsive for components with breakpoints
|
|
574
|
+
{/* use .Responsive for components with breakpoints */}
|
|
573
575
|
<${exampleComponent?.componentName}.Responsive${propStr} />
|
|
574
576
|
`
|
|
575
577
|
const nonResponsiveComponent = dedent`
|
|
@@ -811,6 +813,7 @@ async function extractPropControlsSafe(text, name) {
|
|
|
811
813
|
}
|
|
812
814
|
return propControls
|
|
813
815
|
} catch (e: any) {
|
|
816
|
+
notifyError(error, 'typescript generation error')
|
|
814
817
|
logger.error(`Cannot get property controls for ${name}`, e.stack)
|
|
815
818
|
}
|
|
816
819
|
}
|
package/src/framer.js
CHANGED
|
@@ -10429,7 +10429,7 @@ function steps(numSteps, direction = 'end',) {
|
|
|
10429
10429
|
};
|
|
10430
10430
|
}
|
|
10431
10431
|
|
|
10432
|
-
// /:https://app.framerstatic.com/framer.
|
|
10432
|
+
// /:https://app.framerstatic.com/framer.J6CEE64J.mjs
|
|
10433
10433
|
import React4 from 'react';
|
|
10434
10434
|
import { startTransition as startTransition2, } from 'react';
|
|
10435
10435
|
import { Suspense as Suspense2, } from 'react';
|
|
@@ -18571,6 +18571,7 @@ var ControlType = /* @__PURE__ */ ((ControlType2) => {
|
|
|
18571
18571
|
ControlType2['Cursor'] = 'cursor';
|
|
18572
18572
|
ControlType2['Padding'] = 'padding';
|
|
18573
18573
|
ControlType2['BorderRadius'] = 'borderradius';
|
|
18574
|
+
ControlType2['Gap'] = 'gap';
|
|
18574
18575
|
ControlType2['CollectionReference'] = 'collectionreference';
|
|
18575
18576
|
ControlType2['MultiCollectionReference'] = 'multicollectionreference';
|
|
18576
18577
|
ControlType2['TrackingId'] = 'trackingid';
|
|
@@ -19008,6 +19009,9 @@ var inputIconCSSDeclaration = {
|
|
|
19008
19009
|
function createRGBVariableFallbacks(variables, fallback,) {
|
|
19009
19010
|
return css.variable(...variables.flatMap((variable) => [`${variable}-rgb`, variable,]), fallback,);
|
|
19010
19011
|
}
|
|
19012
|
+
function createFontSizeVariableFallbacks(variables, fallback,) {
|
|
19013
|
+
return css.variable(...variables.flatMap((variable) => [`${variable}-canvas`, variable,]), fallback,);
|
|
19014
|
+
}
|
|
19011
19015
|
var richTextCSSRules = /* @__PURE__ */ (() => [
|
|
19012
19016
|
/* css */
|
|
19013
19017
|
`
|
|
@@ -19043,7 +19047,9 @@ var richTextCSSRules = /* @__PURE__ */ (() => [
|
|
|
19043
19047
|
font-style: var(--framer-blockquote-font-style, var(--framer-font-style, normal));
|
|
19044
19048
|
font-weight: var(--framer-blockquote-font-weight, var(--framer-font-weight, 400));
|
|
19045
19049
|
color: var(--framer-blockquote-text-color, var(--framer-text-color, #000));
|
|
19046
|
-
font-size: calc(var(--framer-blockquote-font-size,
|
|
19050
|
+
font-size: calc(var(--framer-blockquote-font-size, ${
|
|
19051
|
+
createFontSizeVariableFallbacks(['--framer-font-size',], '16px',)
|
|
19052
|
+
}) * var(--framer-font-size-scale, 1));
|
|
19047
19053
|
letter-spacing: var(--framer-blockquote-letter-spacing, var(--framer-letter-spacing, 0));
|
|
19048
19054
|
text-transform: var(--framer-blockquote-text-transform, var(--framer-text-transform, none));
|
|
19049
19055
|
text-decoration: var(--framer-blockquote-text-decoration, var(--framer-text-decoration, none));
|
|
@@ -19162,7 +19168,9 @@ var richTextCSSRules = /* @__PURE__ */ (() => [
|
|
|
19162
19168
|
font-style: var(--framer-blockquote-font-style, var(--framer-code-font-style, var(--framer-font-style, normal)));
|
|
19163
19169
|
font-weight: var(--framer-blockquote-font-weight, var(--framer-code-font-weight, var(--framer-font-weight, 400)));
|
|
19164
19170
|
color: var(--framer-blockquote-text-color, var(--framer-code-text-color, var(--framer-text-color, #000)));
|
|
19165
|
-
font-size: calc(var(--framer-blockquote-font-size,
|
|
19171
|
+
font-size: calc(var(--framer-blockquote-font-size, ${
|
|
19172
|
+
createFontSizeVariableFallbacks(['--framer-font-size',], '16px',)
|
|
19173
|
+
}) * var(--framer-font-size-scale, 1));
|
|
19166
19174
|
letter-spacing: var(--framer-blockquote-letter-spacing, var(--framer-letter-spacing, 0));
|
|
19167
19175
|
line-height: var(--framer-blockquote-line-height, var(--framer-line-height, 1.2em));
|
|
19168
19176
|
}
|
|
@@ -19195,7 +19203,9 @@ var richTextCSSRules = /* @__PURE__ */ (() => [
|
|
|
19195
19203
|
font-style: var(--framer-blockquote-font-style, var(--framer-link-font-style, var(--framer-font-style, normal)));
|
|
19196
19204
|
font-weight: var(--framer-blockquote-font-weight, var(--framer-link-font-weight, var(--framer-font-weight, 400)));
|
|
19197
19205
|
color: var(--framer-blockquote-text-color, var(--framer-link-text-color, var(--framer-text-color, #000)));
|
|
19198
|
-
font-size: calc(var(--framer-blockquote-font-size,
|
|
19206
|
+
font-size: calc(var(--framer-blockquote-font-size, ${
|
|
19207
|
+
createFontSizeVariableFallbacks(['--framer-font-size',], '16px',)
|
|
19208
|
+
}) * var(--framer-font-size-scale, 1));
|
|
19199
19209
|
text-transform: var(--framer-blockquote-text-transform, var(--framer-link-text-transform, var(--framer-text-transform, none)));
|
|
19200
19210
|
text-decoration: var(--framer-blockquote-text-decoration, var(--framer-link-text-decoration, var(--framer-text-decoration, none)));
|
|
19201
19211
|
/* Cursor inherit to overwrite the user agent stylesheet on rich text links. */
|
|
@@ -19223,7 +19233,9 @@ var richTextCSSRules = /* @__PURE__ */ (() => [
|
|
|
19223
19233
|
font-style: var(--framer-blockquote-font-style, var(--framer-code-font-style, var(--framer-font-style, normal)));
|
|
19224
19234
|
font-weight: var(--framer-blockquote-font-weight, var(--framer-code-font-weight, var(--framer-font-weight, 400)));
|
|
19225
19235
|
color: var(--framer-blockquote-text-color, var(--framer-link-text-color, var(--framer-code-text-color, var(--framer-text-color, #000))));
|
|
19226
|
-
font-size: calc(var(--framer-blockquote-font-size,
|
|
19236
|
+
font-size: calc(var(--framer-blockquote-font-size, ${
|
|
19237
|
+
createFontSizeVariableFallbacks(['--framer-font-size',], '16px',)
|
|
19238
|
+
}) * var(--framer-font-size-scale, 1));
|
|
19227
19239
|
}
|
|
19228
19240
|
`, /* css */
|
|
19229
19241
|
`
|
|
@@ -19252,7 +19264,9 @@ var richTextCSSRules = /* @__PURE__ */ (() => [
|
|
|
19252
19264
|
font-style: var(--framer-link-hover-font-style, var(--framer-blockquote-font-style, var(--framer-link-font-style, var(--framer-font-style, normal))));
|
|
19253
19265
|
font-weight: var(--framer-link-hover-font-weight, var(--framer-blockquote-font-weight, var(--framer-link-font-weight, var(--framer-font-weight, 400))));
|
|
19254
19266
|
color: var(--framer-link-hover-text-color, var(--framer-blockquote-text-color, var(--framer-link-text-color, var(--framer-text-color, #000))));
|
|
19255
|
-
font-size: calc(var(--framer-link-hover-font-size, var(--framer-blockquote-font-size,
|
|
19267
|
+
font-size: calc(var(--framer-link-hover-font-size, var(--framer-blockquote-font-size, ${
|
|
19268
|
+
createFontSizeVariableFallbacks(['--framer-font-size',], '16px',)
|
|
19269
|
+
})) * var(--framer-font-size-scale, 1));
|
|
19256
19270
|
text-transform: var(--framer-link-hover-text-transform, var(--framer-blockquote-text-transform, var(--framer-link-text-transform, var(--framer-text-transform, none))));
|
|
19257
19271
|
text-decoration: var(--framer-link-hover-text-decoration, var(--framer-blockquote-text-decoration, var(--framer-link-text-decoration, var(--framer-text-decoration, none))));
|
|
19258
19272
|
}
|
|
@@ -19283,7 +19297,9 @@ var richTextCSSRules = /* @__PURE__ */ (() => [
|
|
|
19283
19297
|
font-style: var(--framer-blockquote-font-style, var(--framer-code-font-style, var(--framer-font-style, normal)));
|
|
19284
19298
|
font-weight: var(--framer-blockquote-font-weight, var(--framer-code-font-weight, var(--framer-font-weight, 400)));
|
|
19285
19299
|
color: var(--framer-link-hover-text-color, var(--framer-blockquote-text-color, var(--framer-link-text-color, var(--framer-code-text-color, var(--framer-text-color, #000)))));
|
|
19286
|
-
font-size: calc(var(--framer-link-hover-font-size, var(--framer-blockquote-font-size, var(--framer-link-font-size,
|
|
19300
|
+
font-size: calc(var(--framer-link-hover-font-size, var(--framer-blockquote-font-size, var(--framer-link-font-size, ${
|
|
19301
|
+
createFontSizeVariableFallbacks(['--framer-font-size',], '16px',)
|
|
19302
|
+
}))) * var(--framer-font-size-scale, 1));
|
|
19287
19303
|
}
|
|
19288
19304
|
`, /* css */
|
|
19289
19305
|
`
|
|
@@ -19312,7 +19328,9 @@ var richTextCSSRules = /* @__PURE__ */ (() => [
|
|
|
19312
19328
|
font-style: var(--framer-link-current-font-style, var(--framer-link-font-style, var(--framer-font-style, normal)));
|
|
19313
19329
|
font-weight: var(--framer-link-current-font-weight, var(--framer-link-font-weight, var(--framer-font-weight, 400)));
|
|
19314
19330
|
color: var(--framer-link-current-text-color, var(--framer-link-text-color, var(--framer-text-color, #000)));
|
|
19315
|
-
font-size: calc(var(--framer-link-current-font-size, var(--framer-link-font-size,
|
|
19331
|
+
font-size: calc(var(--framer-link-current-font-size, var(--framer-link-font-size, ${
|
|
19332
|
+
createFontSizeVariableFallbacks(['--framer-font-size',], '16px',)
|
|
19333
|
+
})) * var(--framer-font-size-scale, 1));
|
|
19316
19334
|
text-transform: var(--framer-link-current-text-transform, var(--framer-link-text-transform, var(--framer-text-transform, none)));
|
|
19317
19335
|
text-decoration: var(--framer-link-current-text-decoration, var(--framer-link-text-decoration, var(--framer-text-decoration, none)));
|
|
19318
19336
|
}
|
|
@@ -19338,7 +19356,9 @@ var richTextCSSRules = /* @__PURE__ */ (() => [
|
|
|
19338
19356
|
font-style: var(--framer-code-font-style, var(--framer-font-style, normal));
|
|
19339
19357
|
font-weight: var(--framer-code-font-weight, var(--framer-font-weight, 400));
|
|
19340
19358
|
color: var(--framer-link-current-text-color, var(--framer-link-text-color, var(--framer-code-text-color, var(--framer-text-color, #000))));
|
|
19341
|
-
font-size: calc(var(--framer-link-current-font-size, var(--framer-link-font-size,
|
|
19359
|
+
font-size: calc(var(--framer-link-current-font-size, var(--framer-link-font-size, ${
|
|
19360
|
+
createFontSizeVariableFallbacks(['--framer-font-size',], '16px',)
|
|
19361
|
+
})) * var(--framer-font-size-scale, 1));
|
|
19342
19362
|
}
|
|
19343
19363
|
`, /* css */
|
|
19344
19364
|
`
|
|
@@ -19367,7 +19387,9 @@ var richTextCSSRules = /* @__PURE__ */ (() => [
|
|
|
19367
19387
|
font-style: var(--framer-link-hover-font-style, var(--framer-link-current-font-style, var(--framer-link-font-style, var(--framer-font-style, normal))));
|
|
19368
19388
|
font-weight: var(--framer-link-hover-font-weight, var(--framer-link-current-font-weight, var(--framer-link-font-weight, var(--framer-font-weight, 400))));
|
|
19369
19389
|
color: var(--framer-link-hover-text-color, var(--framer-link-current-text-color, var(--framer-link-text-color, var(--framer-text-color, #000))));
|
|
19370
|
-
font-size: calc(var(--framer-link-hover-font-size, var(--framer-link-current-font-size, var(--framer-link-font-size,
|
|
19390
|
+
font-size: calc(var(--framer-link-hover-font-size, var(--framer-link-current-font-size, var(--framer-link-font-size, ${
|
|
19391
|
+
createFontSizeVariableFallbacks(['--framer-font-size',], '16px',)
|
|
19392
|
+
}))) * var(--framer-font-size-scale, 1));
|
|
19371
19393
|
text-transform: var(--framer-link-hover-text-transform, var(--framer-link-current-text-transform, var(--framer-link-text-transform, var(--framer-text-transform, none))));
|
|
19372
19394
|
text-decoration: var(--framer-link-hover-text-decoration, var(--framer-link-current-text-decoration, var(--framer-link-text-decoration, var(--framer-text-decoration, none))));
|
|
19373
19395
|
}
|
|
@@ -19399,7 +19421,9 @@ var richTextCSSRules = /* @__PURE__ */ (() => [
|
|
|
19399
19421
|
font-style: var(--framer-code-font-style, var(--framer-font-style, normal));
|
|
19400
19422
|
font-weight: var(--framer-code-font-weight, var(--framer-font-weight, 400));
|
|
19401
19423
|
color: var(--framer-link-hover-text-color, var(--framer-link-current-text-color, var(--framer-link-text-color, var(--framer-code-text-color, var(--framer-text-color, #000)))));
|
|
19402
|
-
font-size: calc(var(--framer-link-hover-font-size, var(--framer-link-current-font-size, var(--framer-link-font-size,
|
|
19424
|
+
font-size: calc(var(--framer-link-hover-font-size, var(--framer-link-current-font-size, var(--framer-link-font-size, ${
|
|
19425
|
+
createFontSizeVariableFallbacks(['--framer-font-size',], '16px',)
|
|
19426
|
+
}))) * var(--framer-font-size-scale, 1));
|
|
19403
19427
|
}
|
|
19404
19428
|
`, /* css */
|
|
19405
19429
|
`
|
|
@@ -19932,6 +19956,7 @@ function getControlDefaultValue(control,) {
|
|
|
19932
19956
|
case 'boxshadow':
|
|
19933
19957
|
case 'padding':
|
|
19934
19958
|
case 'borderradius':
|
|
19959
|
+
case 'gap':
|
|
19935
19960
|
return isString(control.defaultValue,) ? control.defaultValue : void 0;
|
|
19936
19961
|
case 'boolean':
|
|
19937
19962
|
return isBoolean(control.defaultValue,) ? control.defaultValue : void 0;
|
|
@@ -42474,6 +42499,10 @@ var variantsNameToWeight = {
|
|
|
42474
42499
|
'solid-regular': 700,
|
|
42475
42500
|
'solid-medium': 800,
|
|
42476
42501
|
'solid-bold': 900,
|
|
42502
|
+
// The following variants are only used in the Tecnica font.
|
|
42503
|
+
// We assign them different (fake) weights to ensure that the changes are picked up when switching between variants.
|
|
42504
|
+
'53': 400,
|
|
42505
|
+
'55': 600,
|
|
42477
42506
|
// we want to put variable fonts last
|
|
42478
42507
|
variable: 1e3,
|
|
42479
42508
|
'variable-italic': 1e3,
|
package/src/sentry.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
const SENTRY_DSN =
|
|
2
|
+
'https://67125acb9a41f616144a07c90a16775e@o4508014272446464.ingest.de.sentry.io/4509202968674384'
|
|
3
|
+
|
|
4
|
+
let sentry: typeof import('@sentry/node') | null = null
|
|
5
|
+
|
|
6
|
+
export async function notifyError(error: unknown, msg?: string) {
|
|
7
|
+
console.error(msg, error)
|
|
8
|
+
|
|
9
|
+
if (!sentry) {
|
|
10
|
+
const mod = await import('@sentry/node')
|
|
11
|
+
mod.init({
|
|
12
|
+
dsn: SENTRY_DSN,
|
|
13
|
+
beforeSend(event) {
|
|
14
|
+
if (event?.['name'] === 'AbortError') return null
|
|
15
|
+
return event
|
|
16
|
+
},
|
|
17
|
+
})
|
|
18
|
+
sentry = mod
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
sentry.captureException(error, { extra: { msg } })
|
|
22
|
+
await sentry.flush(1000)
|
|
23
|
+
}
|
package/src/utils.ts
CHANGED
|
@@ -1,17 +1,27 @@
|
|
|
1
1
|
import pico from 'picocolors'
|
|
2
|
+
import {
|
|
3
|
+
Agent,
|
|
4
|
+
fetch,
|
|
5
|
+
getGlobalDispatcher,
|
|
6
|
+
interceptors,
|
|
7
|
+
setGlobalDispatcher,
|
|
8
|
+
} from 'undici'
|
|
2
9
|
|
|
3
10
|
import { marked } from 'marked'
|
|
4
11
|
import { markedTerminal } from 'marked-terminal'
|
|
5
12
|
import { createSpinner } from 'nanospinner'
|
|
6
13
|
|
|
7
|
-
export const spinner = createSpinner('Downloading Framer Components')
|
|
8
|
-
|
|
9
14
|
marked.use(markedTerminal())
|
|
10
15
|
|
|
11
16
|
export function terminalMarkdown(markdown: string) {
|
|
12
17
|
return marked(markdown)
|
|
13
18
|
}
|
|
14
19
|
|
|
20
|
+
export const dispatcher = new Agent({
|
|
21
|
+
keepAliveTimeout: 20,
|
|
22
|
+
keepAliveMaxTimeout: 20,
|
|
23
|
+
})
|
|
24
|
+
|
|
15
25
|
const shouldDebugUnframer = !!process.env.DEBUG_UNFRAMER
|
|
16
26
|
|
|
17
27
|
const prefix = '[unframer]'
|
|
@@ -23,6 +33,20 @@ export const logger = {
|
|
|
23
33
|
}
|
|
24
34
|
console.log(prefix, ...args)
|
|
25
35
|
},
|
|
36
|
+
start(x?: string) {
|
|
37
|
+
if (!x) return
|
|
38
|
+
console.log(prefix, x)
|
|
39
|
+
},
|
|
40
|
+
stop(x?: string) {
|
|
41
|
+
if (!x) return
|
|
42
|
+
console.log(prefix, x)
|
|
43
|
+
},
|
|
44
|
+
info(...args) {
|
|
45
|
+
console.log(prefix, ...args)
|
|
46
|
+
},
|
|
47
|
+
update(...args) {
|
|
48
|
+
console.log(prefix, ...args)
|
|
49
|
+
},
|
|
26
50
|
green(...args) {
|
|
27
51
|
console.log([prefix, ...args].map((x) => pico.green(x)).join(' '))
|
|
28
52
|
},
|
|
@@ -31,6 +55,8 @@ export const logger = {
|
|
|
31
55
|
},
|
|
32
56
|
}
|
|
33
57
|
|
|
58
|
+
export const spinner = logger
|
|
59
|
+
|
|
34
60
|
export function componentNameToPath(name: string) {
|
|
35
61
|
return (
|
|
36
62
|
name
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = '2.24.
|
|
1
|
+
export const version = '2.24.4'
|