@yahoo/uds 1.3.3 → 1.4.0
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/cli/bin/uds-darwin-arm64-baseline +0 -0
- package/cli/bin/uds-linux-x64-baseline +0 -0
- package/cli/preload.ts +1 -0
- package/cli/utils/auth.test.ts +105 -10
- package/cli/utils/auth.ts +168 -48
- package/cli/utils/client_secrets.json +8 -0
- package/cli/utils/client_secrets.json.enc +0 -0
- package/cli/utils/secrets.ts +1 -1
- package/dist/{chunk-PCSDVJE6.js → chunk-33B23P5G.js} +1 -1
- package/dist/chunk-3LHMB72F.cjs +2 -0
- package/dist/{chunk-4IHRPERX.js → chunk-6GVKLLYU.js} +3 -3
- package/dist/{chunk-SLCISFAV.cjs → chunk-AWEUIM22.cjs} +3 -3
- package/dist/{chunk-4J7ZJHCN.js → chunk-BEYSF2MO.js} +1 -1
- package/dist/{chunk-SQU6CISU.js → chunk-FRZFCKD2.js} +2 -2
- package/dist/{chunk-CE5NDFHI.js → chunk-HJC2LPQ4.js} +1 -1
- package/dist/chunk-J6D4HCFT.cjs +2 -0
- package/dist/{chunk-TWTUXY76.cjs → chunk-LNFRMD6G.cjs} +2 -2
- package/dist/{chunk-2JIYRTEY.js → chunk-LPM6JKIW.js} +2 -2
- package/dist/{chunk-PONXZVX3.cjs → chunk-PECN66KD.cjs} +2 -2
- package/dist/chunk-PSTMMXTR.js +2 -0
- package/dist/{chunk-Y2TGGXMH.js → chunk-RGE634O5.js} +2 -2
- package/dist/{chunk-SISW7S7C.cjs → chunk-SSMBE7SI.cjs} +2 -2
- package/dist/chunk-VZAZKBYK.cjs +2 -0
- package/dist/{chunk-SWXXMG77.cjs → chunk-WASU57GH.cjs} +1 -1
- package/dist/chunk-WLOEKYUI.cjs +4 -0
- package/dist/{chunk-5TXG2NIQ.js → chunk-YRYDHL65.js} +4 -4
- package/dist/client/index.cjs +3 -3
- package/dist/client/index.js +5 -5
- package/dist/experimental/index.cjs +2 -2
- package/dist/experimental/index.js +2 -2
- package/dist/index.cjs +1 -1
- package/dist/index.js +2 -2
- package/dist/metafile-cjs.json +1 -1
- package/dist/metafile-esm.json +1 -1
- package/dist/tailwind/plugin.cjs +2 -2
- package/dist/tailwind/plugin.js +3 -3
- package/dist/tailwind/purger.cjs +2 -2
- package/dist/tailwind/purger.js +2 -2
- package/dist/tailwind/tsMorph.cjs +2 -2
- package/dist/tailwind/tsMorph.js +2 -2
- package/dist/tailwind/utils.cjs +1 -1
- package/dist/tailwind/utils.js +1 -1
- package/dist/tokens/index.cjs +1 -1
- package/dist/tokens/index.js +1 -1
- package/dist/tokens/parseTokens.cjs +1 -1
- package/dist/tokens/parseTokens.js +1 -1
- package/package.json +5 -8
- package/dist/chunk-3VTRSTDI.cjs +0 -2
- package/dist/chunk-67ZAMQTH.js +0 -2
- package/dist/chunk-6K5IORZA.cjs +0 -2
- package/dist/chunk-E3Z3A4MR.cjs +0 -2
- package/dist/chunk-QSN7SKTX.cjs +0 -4
- /package/dist/{motionFeatures-QDISAARM.js → motionFeatures-B5UV2GY2.js} +0 -0
- /package/dist/{motionFeatures-M3DOZMRC.cjs → motionFeatures-THWWLQYC.cjs} +0 -0
Binary file
|
Binary file
|
package/cli/preload.ts
CHANGED
@@ -51,6 +51,7 @@ mock.module('googleapis', () => ({
|
|
51
51
|
OAuth2: mock(() => {}).mockImplementation(() => ({
|
52
52
|
getToken: () => Promise.resolve({ tokens: 'test' }),
|
53
53
|
setCredentials: mock(() => {}),
|
54
|
+
generateAuthUrl: mock(() => 'https://accounts.google.com/o/oauth2/v2/auth'),
|
54
55
|
})),
|
55
56
|
},
|
56
57
|
oauth2: () => ({
|
package/cli/utils/auth.test.ts
CHANGED
@@ -6,11 +6,15 @@ import http from 'http';
|
|
6
6
|
import httpMocks from 'node-mocks-http';
|
7
7
|
|
8
8
|
import {
|
9
|
+
configuratorUrlOrigin,
|
9
10
|
getAuthenticatedUser,
|
11
|
+
getAuthorizeUrl,
|
10
12
|
isYahooEmployee,
|
11
13
|
login,
|
14
|
+
type LoginProvider,
|
12
15
|
logout,
|
13
|
-
|
16
|
+
onGETHandler,
|
17
|
+
onPostHandler,
|
14
18
|
type User,
|
15
19
|
} from './auth';
|
16
20
|
|
@@ -29,6 +33,22 @@ describe('auth', () => {
|
|
29
33
|
});
|
30
34
|
});
|
31
35
|
|
36
|
+
describe('getAuthorizeUrl', () => {
|
37
|
+
it('uses configurator by default', () => {
|
38
|
+
expect(getAuthorizeUrl()).toEqual(
|
39
|
+
`${configuratorUrlOrigin}/login?continue=http://localhost:3000/oauth2callback`,
|
40
|
+
);
|
41
|
+
});
|
42
|
+
|
43
|
+
it('generates the google auth url for other providers', () => {
|
44
|
+
(['google', 'firebase'] as LoginProvider[]).forEach((provider) => {
|
45
|
+
expect(getAuthorizeUrl(provider)).toStartWith(
|
46
|
+
`https://accounts.google.com/o/oauth2/v2/auth`,
|
47
|
+
);
|
48
|
+
});
|
49
|
+
});
|
50
|
+
});
|
51
|
+
|
32
52
|
describe('getAuthenticatedUser', () => {
|
33
53
|
it('does not return a user on first use', async () => {
|
34
54
|
expect(await getAuthenticatedUser(__dirname)).toBeUndefined();
|
@@ -50,29 +70,104 @@ describe('auth', () => {
|
|
50
70
|
});
|
51
71
|
});
|
52
72
|
|
53
|
-
describe('
|
54
|
-
// mock.module('open', () => ({}));
|
73
|
+
describe('authenticateUser', () => {
|
55
74
|
const mockServer = Object.assign(Object.create(http.Server.prototype), {
|
56
75
|
listen: mock(),
|
57
76
|
on: mock(),
|
58
77
|
close: mock(),
|
59
78
|
});
|
60
|
-
|
61
|
-
const
|
79
|
+
|
80
|
+
const mockUser = { email: 'foo@yahooinc.com' };
|
81
|
+
|
82
|
+
mock.module('firebase/auth', () => ({
|
83
|
+
GoogleAuthProvider: {
|
84
|
+
credential: mock(),
|
85
|
+
},
|
86
|
+
signInWithCredential: mock(() => Promise.resolve({ user: mockUser })),
|
87
|
+
}));
|
62
88
|
|
63
89
|
it('returns error when no code is on callback url', async () => {
|
90
|
+
const resolve = mock();
|
91
|
+
const reject = mock();
|
92
|
+
|
64
93
|
const request = httpMocks.createRequest({ method: 'GET', url: '/oauth2callback' });
|
65
94
|
const response = httpMocks.createResponse();
|
66
|
-
await
|
95
|
+
await onGETHandler.bind(mockServer)(request, response, resolve, reject);
|
67
96
|
expect(response._getData()).toInclude('no code parameter');
|
68
97
|
});
|
69
98
|
|
70
99
|
it('can successfully login in user', async () => {
|
100
|
+
const resolve = mock();
|
101
|
+
const reject = mock();
|
102
|
+
|
71
103
|
const request = httpMocks.createRequest({ method: 'GET', url: '/oauth2callback?code=123' });
|
72
104
|
const response = httpMocks.createResponse();
|
73
|
-
await
|
74
|
-
expect(response._getData()).toInclude('Authentication successful!');
|
75
|
-
expect(resolve).
|
105
|
+
await onGETHandler.bind(mockServer)(request, response, resolve, reject);
|
106
|
+
expect(response._getData()).toInclude('Authentication successful! Please close this window.');
|
107
|
+
expect(resolve).toHaveBeenCalledWith(mockUser);
|
108
|
+
expect(reject).not.toHaveBeenCalled();
|
109
|
+
});
|
110
|
+
});
|
111
|
+
|
112
|
+
describe('onPostHandler', () => {
|
113
|
+
const mockServer = Object.assign(Object.create(http.Server.prototype), {
|
114
|
+
listen: mock(),
|
115
|
+
on: mock(),
|
116
|
+
close: mock(),
|
117
|
+
});
|
118
|
+
|
119
|
+
it('ignores non-POST requests', () => {
|
120
|
+
const req = httpMocks.createRequest({ method: 'GET' });
|
121
|
+
const resp = httpMocks.createResponse();
|
122
|
+
onPostHandler.bind(mockServer)(req, resp, mock(), mock());
|
123
|
+
expect(resp._getStatusCode()).toBe(405);
|
124
|
+
expect(resp._getData()).toInclude('Method Not Allowed');
|
125
|
+
});
|
126
|
+
|
127
|
+
it('rejects requests from 3rd party origins', () => {
|
128
|
+
const req = httpMocks.createRequest({
|
129
|
+
method: 'POST',
|
130
|
+
headers: { origin: 'https://bad.com' },
|
131
|
+
});
|
132
|
+
const resp = httpMocks.createResponse();
|
133
|
+
const reject = mock();
|
134
|
+
onPostHandler.bind(mockServer)(req, resp, mock(), reject);
|
135
|
+
expect(reject).toHaveBeenCalledWith('Request origin not allowed.');
|
136
|
+
});
|
137
|
+
|
138
|
+
it('sets CORS headers', () => {
|
139
|
+
const req = httpMocks.createRequest({
|
140
|
+
method: 'POST',
|
141
|
+
headers: { origin: configuratorUrlOrigin },
|
142
|
+
// body: JSON.stringify({ email: ''}),
|
143
|
+
});
|
144
|
+
const resp = httpMocks.createResponse();
|
145
|
+
const resolve = mock();
|
146
|
+
const reject = mock();
|
147
|
+
onPostHandler.bind(mockServer)(req, resp, resolve, reject);
|
148
|
+
expect(resp.getHeaders()).toEqual({
|
149
|
+
'access-control-allow-origin': configuratorUrlOrigin,
|
150
|
+
'access-control-allow-methods': 'OPTIONS, GET, POST',
|
151
|
+
});
|
152
|
+
});
|
153
|
+
|
154
|
+
it('sends a user obj', async () => {
|
155
|
+
const mockUser = { email: 'foo@yahooinc.com', displayName: 'Foo' };
|
156
|
+
|
157
|
+
const req = httpMocks.createRequest({
|
158
|
+
method: 'POST',
|
159
|
+
headers: { origin: configuratorUrlOrigin },
|
160
|
+
});
|
161
|
+
const resp = httpMocks.createResponse({
|
162
|
+
eventEmitter: (await import('events')).EventEmitter,
|
163
|
+
});
|
164
|
+
const resolve = mock();
|
165
|
+
const reject = mock();
|
166
|
+
onPostHandler.bind(mockServer)(req, resp, resolve, reject);
|
167
|
+
req.send(mockUser);
|
168
|
+
expect(resp._getData()).toInclude('Authentication successful! Please close this window.');
|
169
|
+
expect(reject).not.toHaveBeenCalled();
|
170
|
+
expect(resolve).toHaveBeenCalledWith(mockUser);
|
76
171
|
});
|
77
172
|
});
|
78
173
|
|
@@ -93,7 +188,7 @@ describe('auth', () => {
|
|
93
188
|
const mockFunc = mock(() => Promise.resolve({ email: 'foo@yahooinc.com' }));
|
94
189
|
|
95
190
|
mock.module('./auth', () => ({
|
96
|
-
|
191
|
+
authenticateUser: mockFunc,
|
97
192
|
}));
|
98
193
|
|
99
194
|
it('uses cache when user previously logged in', async () => {
|
package/cli/utils/auth.ts
CHANGED
@@ -3,87 +3,204 @@ import path from 'node:path';
|
|
3
3
|
|
4
4
|
import { print, red } from 'bluebun';
|
5
5
|
import Bun from 'bun';
|
6
|
-
import {
|
6
|
+
import { getApps, initializeApp } from 'firebase/app';
|
7
|
+
import {
|
8
|
+
connectAuthEmulator,
|
9
|
+
getAuth,
|
10
|
+
GoogleAuthProvider,
|
11
|
+
signInWithCredential,
|
12
|
+
User as FirebaseUser,
|
13
|
+
} from 'firebase/auth';
|
14
|
+
import { google, oauth2_v2 } from 'googleapis';
|
7
15
|
import http from 'http';
|
8
16
|
import open from 'open';
|
9
17
|
|
10
18
|
import clientSecrets from './client_secrets.json';
|
11
19
|
|
12
|
-
|
13
|
-
|
14
|
-
const { port: PORT, origin: BASE_URL } = new URL(REDIRECT_URL);
|
20
|
+
type User = oauth2_v2.Schema$Userinfo | FirebaseUser;
|
21
|
+
type LoginProvider = 'google' | 'firebase' | 'configurator';
|
15
22
|
|
16
|
-
const
|
23
|
+
const LOGIN_PROVIDER: LoginProvider =
|
24
|
+
(process.env.LOGIN_PROVIDER as LoginProvider) ?? 'configurator';
|
25
|
+
|
26
|
+
const REDIRECT_URL = clientSecrets.web.redirect_uris[0];
|
27
|
+
const { port: PORT, origin: SERVER_ORIGIN } = new URL(REDIRECT_URL);
|
28
|
+
|
29
|
+
const configuratorUrlOrigin =
|
30
|
+
process.env.NODE_ENV === 'production' ? 'https://config.uds.build' : 'http://localhost:4001';
|
31
|
+
|
32
|
+
const CACHE_FILEPATH = '.uds/user.json';
|
17
33
|
const DEFAULT_CLI_PATH = path.resolve(import.meta.dir, '..');
|
18
|
-
const CACHED_USER_FILE = path.resolve(DEFAULT_CLI_PATH,
|
34
|
+
const CACHED_USER_FILE = path.resolve(DEFAULT_CLI_PATH, CACHE_FILEPATH);
|
19
35
|
|
20
|
-
|
21
|
-
const oauth2Client = new google.auth.OAuth2(client_id, client_secret, REDIRECT_URL);
|
36
|
+
const isEmulator = process.env.EMULATOR || process.env.NEXT_PUBLIC_EMULATOR;
|
22
37
|
|
23
|
-
|
38
|
+
// TODO: consolidate with the firebase config and setup in database/firebase.ts
|
39
|
+
const firebaseConfig = !isEmulator
|
40
|
+
? clientSecrets.firebaseConfig
|
41
|
+
: {
|
42
|
+
projectId: 'uds-poc',
|
43
|
+
apiKey: 'DUMMY_API_KEY',
|
44
|
+
authDomain: 'uds-poc.firebaseapp.com',
|
45
|
+
};
|
46
|
+
|
47
|
+
const firebaseApp = getApps().length === 0 ? initializeApp(firebaseConfig) : getApps()[0];
|
48
|
+
const auth = getAuth(firebaseApp);
|
49
|
+
|
50
|
+
if (isEmulator) {
|
51
|
+
connectAuthEmulator(auth, 'http://127.0.0.1:9099');
|
52
|
+
}
|
53
|
+
|
54
|
+
// Credentials can be found in https://console.cloud.google.com/apis/credentials/oauthclient/700524957090-6uju02gp6i0rlm3p17nt1v6vbrretfka.apps.googleusercontent.com?project=uds-poc.
|
55
|
+
const oauth2Client = new google.auth.OAuth2(
|
56
|
+
clientSecrets.web.client_id,
|
57
|
+
clientSecrets.web.client_secret,
|
58
|
+
REDIRECT_URL,
|
59
|
+
);
|
24
60
|
|
25
61
|
function isYahooEmployee(user?: User) {
|
26
62
|
return user?.email?.endsWith('@yahooinc.com');
|
27
63
|
}
|
28
64
|
|
29
|
-
|
65
|
+
function getAuthorizeUrl(loginProvider = LOGIN_PROVIDER) {
|
66
|
+
if (loginProvider === 'configurator') {
|
67
|
+
return `${configuratorUrlOrigin}/login?continue=${REDIRECT_URL}`;
|
68
|
+
}
|
69
|
+
|
70
|
+
return oauth2Client.generateAuthUrl({
|
71
|
+
access_type: 'offline',
|
72
|
+
scope: [
|
73
|
+
'https://www.googleapis.com/auth/userinfo.profile',
|
74
|
+
'https://www.googleapis.com/auth/userinfo.email',
|
75
|
+
].join(' '),
|
76
|
+
hd: 'yahooinc.com',
|
77
|
+
include_granted_scopes: true,
|
78
|
+
});
|
79
|
+
}
|
80
|
+
|
81
|
+
function onPostHandler(
|
30
82
|
this: http.Server,
|
31
83
|
req: http.IncomingMessage,
|
32
84
|
res: http.ServerResponse,
|
33
|
-
resolve: (
|
85
|
+
resolve: (user: User) => void,
|
86
|
+
reject: (reason?: unknown) => void,
|
87
|
+
) {
|
88
|
+
if (req.method !== 'POST') {
|
89
|
+
res.writeHead(405, { Allow: 'POST' }); // Set the 405 status and Allow header
|
90
|
+
res.end('Method Not Allowed');
|
91
|
+
reject('Method Not Allowed');
|
92
|
+
return;
|
93
|
+
}
|
94
|
+
|
95
|
+
if (req.headers.origin !== configuratorUrlOrigin) {
|
96
|
+
reject(`Request origin not allowed.`);
|
97
|
+
return;
|
98
|
+
}
|
99
|
+
|
100
|
+
res.setHeader('Access-Control-Allow-Origin', configuratorUrlOrigin);
|
101
|
+
res.setHeader('Access-Control-Allow-Methods', 'OPTIONS, GET, POST');
|
102
|
+
|
103
|
+
let data = '';
|
104
|
+
|
105
|
+
req.on('data', (chunk) => {
|
106
|
+
data += chunk.toString();
|
107
|
+
});
|
108
|
+
|
109
|
+
req.on('error', (err: NodeJS.ErrnoException) => {
|
110
|
+
reject(err);
|
111
|
+
});
|
112
|
+
|
113
|
+
req.on('end', () => {
|
114
|
+
try {
|
115
|
+
const user: FirebaseUser = JSON.parse(data);
|
116
|
+
res.end('Authentication successful! Please close this window.');
|
117
|
+
resolve(user);
|
118
|
+
} catch (err) {
|
119
|
+
reject(err);
|
120
|
+
} finally {
|
121
|
+
this.close();
|
122
|
+
}
|
123
|
+
});
|
124
|
+
}
|
125
|
+
|
126
|
+
async function onGETHandler(
|
127
|
+
this: http.Server,
|
128
|
+
req: http.IncomingMessage,
|
129
|
+
res: http.ServerResponse,
|
130
|
+
resolve: (user: User) => void,
|
34
131
|
reject: (reason?: unknown) => void,
|
35
132
|
) {
|
36
133
|
try {
|
37
|
-
const code = new URL(req.url || '',
|
134
|
+
const code = new URL(req.url || '', SERVER_ORIGIN).searchParams.get('code');
|
38
135
|
if (!code) {
|
39
136
|
res.end('There was no code parameter on the url.');
|
40
137
|
this.close();
|
41
138
|
return;
|
42
139
|
}
|
43
140
|
|
44
|
-
res.end('Authentication successful!
|
45
|
-
|
141
|
+
res.end('Authentication successful! Please close this window.');
|
46
142
|
this.close();
|
47
143
|
|
48
144
|
const { tokens } = await oauth2Client.getToken(code);
|
49
145
|
oauth2Client.setCredentials(tokens);
|
50
146
|
|
51
|
-
|
52
|
-
|
53
|
-
|
147
|
+
let user: User;
|
148
|
+
|
149
|
+
if (LOGIN_PROVIDER === 'firebase') {
|
150
|
+
// Build Firebase credential using the Google ID token.
|
151
|
+
const credential = GoogleAuthProvider.credential(tokens.id_token);
|
152
|
+
user = (await signInWithCredential(auth, credential)).user;
|
153
|
+
} else {
|
154
|
+
const oauth2 = google.oauth2({ version: 'v2', auth: oauth2Client });
|
155
|
+
user = (await oauth2.userinfo.get()).data;
|
156
|
+
}
|
157
|
+
|
158
|
+
resolve(user);
|
159
|
+
} catch (err) {
|
160
|
+
reject(err);
|
54
161
|
}
|
55
162
|
}
|
56
163
|
|
57
|
-
|
164
|
+
/**
|
165
|
+
* Opens a browser window to authenticate the user using Google OAuth2 flow.
|
166
|
+
* The id token is exchanged for Firebase user credentials.
|
167
|
+
* @returns
|
168
|
+
*/
|
169
|
+
async function authenticateUser(): Promise<User> {
|
58
170
|
return new Promise((resolve, reject) => {
|
59
|
-
const authorizeUrl = oauth2Client.generateAuthUrl({
|
60
|
-
access_type: 'offline',
|
61
|
-
scope: [
|
62
|
-
'https://www.googleapis.com/auth/userinfo.profile',
|
63
|
-
'https://www.googleapis.com/auth/userinfo.email',
|
64
|
-
].join(' '),
|
65
|
-
hd: 'yahooinc.com',
|
66
|
-
include_granted_scopes: true,
|
67
|
-
});
|
68
|
-
|
69
171
|
// TODO: If port (3000) is already in use, this will fail.
|
70
172
|
// Setup https://www.npmjs.com/package/find-free-ports, but that won't
|
71
173
|
// play well with the pre-configured redirect_uris in the Google Cloud Console.
|
72
|
-
const server = http
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
})
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
}
|
174
|
+
const server = http.createServer();
|
175
|
+
|
176
|
+
server.listen(PORT, async () => {
|
177
|
+
const authorizeUrl = getAuthorizeUrl();
|
178
|
+
|
179
|
+
print(`Please visit the following URL if it didn't open automatically:\n${authorizeUrl}`);
|
180
|
+
|
181
|
+
const childProcess = await open(authorizeUrl, { wait: false });
|
182
|
+
childProcess.unref();
|
183
|
+
|
184
|
+
process.on('SIGINT', () => {
|
185
|
+
server.close();
|
186
|
+
reject('Received SIGINT.');
|
86
187
|
});
|
188
|
+
});
|
189
|
+
|
190
|
+
server.on('error', (err: NodeJS.ErrnoException) => {
|
191
|
+
if (err.code && err.code.includes('EADDRINUSE')) {
|
192
|
+
print(
|
193
|
+
red(`🚨 Port ${PORT} already in use. Cannot start local server to handle OAuth flow.`),
|
194
|
+
);
|
195
|
+
server.close();
|
196
|
+
}
|
197
|
+
});
|
198
|
+
|
199
|
+
if (LOGIN_PROVIDER === 'configurator') {
|
200
|
+
server.on('request', (req, res) => onPostHandler.call(server, req, res, resolve, reject));
|
201
|
+
} else {
|
202
|
+
server.on('request', (req, res) => onGETHandler.call(server, req, res, resolve, reject));
|
203
|
+
}
|
87
204
|
});
|
88
205
|
}
|
89
206
|
|
@@ -107,12 +224,11 @@ async function login() {
|
|
107
224
|
// Authenticate if there's no user cached.
|
108
225
|
if (!user) {
|
109
226
|
try {
|
110
|
-
|
111
|
-
const oauth2 = google.oauth2({ version: 'v2', auth });
|
112
|
-
user = (await oauth2.userinfo.get()).data;
|
227
|
+
user = await authenticateUser();
|
113
228
|
await Bun.write(CACHED_USER_FILE, JSON.stringify(user, null, 2));
|
114
229
|
} catch (err) {
|
115
230
|
console.error('Error:', err);
|
231
|
+
throw err;
|
116
232
|
}
|
117
233
|
}
|
118
234
|
|
@@ -129,7 +245,7 @@ async function login() {
|
|
129
245
|
*/
|
130
246
|
async function getAuthenticatedUser(cliPath = DEFAULT_CLI_PATH): Promise<User | undefined> {
|
131
247
|
try {
|
132
|
-
const cachePath = path.resolve(cliPath,
|
248
|
+
const cachePath = path.resolve(cliPath, CACHE_FILEPATH);
|
133
249
|
const file = Bun.file(cachePath);
|
134
250
|
const user = await file.json();
|
135
251
|
|
@@ -148,11 +264,15 @@ async function getAuthenticatedUser(cliPath = DEFAULT_CLI_PATH): Promise<User |
|
|
148
264
|
}
|
149
265
|
|
150
266
|
export {
|
151
|
-
|
267
|
+
authenticateUser,
|
268
|
+
configuratorUrlOrigin,
|
152
269
|
getAuthenticatedUser,
|
270
|
+
getAuthorizeUrl,
|
153
271
|
isYahooEmployee,
|
154
272
|
login,
|
273
|
+
type LoginProvider,
|
155
274
|
logout,
|
156
|
-
|
275
|
+
onGETHandler,
|
276
|
+
onPostHandler,
|
157
277
|
type User,
|
158
278
|
};
|
@@ -11,5 +11,13 @@
|
|
11
11
|
"https://uds.build/oauth2callback",
|
12
12
|
"https://config.uds.build/oauth2callback"
|
13
13
|
]
|
14
|
+
},
|
15
|
+
"firebaseConfig": {
|
16
|
+
"apiKey": "AIzaSyDZEsm1GQ1lkK7T8NxJ9D_Pqmcz5u5D2hc",
|
17
|
+
"authDomain": "uds-poc.firebaseapp.com",
|
18
|
+
"projectId": "uds-poc",
|
19
|
+
"storageBucket": "uds-poc.appspot.com",
|
20
|
+
"messagingSenderId": "700524957090",
|
21
|
+
"appId": "1:700524957090:web:b4b5cdba42f694bb5cf6fb"
|
14
22
|
}
|
15
23
|
}
|
Binary file
|
package/cli/utils/secrets.ts
CHANGED
@@ -22,7 +22,7 @@ async function decrypt() {
|
|
22
22
|
|
23
23
|
async function main() {
|
24
24
|
if (!process.env.UDS_CLI_SECRETS_PW) {
|
25
|
-
console.error('Please set UDS_CLI_SECRETS_PW env variable. The password is in LastPass.');
|
25
|
+
console.error('Please set the UDS_CLI_SECRETS_PW env variable. The password is in LastPass.');
|
26
26
|
process.exitCode = 1;
|
27
27
|
return;
|
28
28
|
}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
/*! © 2024 Yahoo, Inc. UDS
|
1
|
+
/*! © 2024 Yahoo, Inc. UDS v0.0.0-development */
|
2
2
|
var o="uds",e=`${o}-avatar-size`,t=`${o}-border-radius`,r=`${o}-border-width`,n=`${o}-font`,d=`${o}-font-size`,i=`${o}-font-weight`,s=`${o}-icon-size`,a=`${o}-line-height`,l=`${o}-motion`,$=`${o}-spectrum-color`,c=`${o}-text-transform`,b=`${o}-color-mode-dark`,u=`${o}-color-mode-light`,f=`${o}-scale-mode-xsmall`,m=`${o}-scale-mode-small`,g=`${o}-scale-mode-medium`,h=`${o}-scale-mode-large`,p=`${o}-scale-mode-xlarge`,x=`${o}-scale-mode-xxlarge`,z=`${o}-scale-mode-xxxlarge`,v=u,w=h,k={borderRadius:`--${o}-button-border-radius`,borderWidth:`--${o}-button-border-width`,color:`--${o}-button-color`,backgroundColor:`--${o}-button-background-color`,borderColor:`--${o}-button-border-color`,padding:`--${o}-button-padding`,columnGap:`--${o}-button-gap`,fontFamily:`--${o}-button-font`,fontWeight:`--${o}-button-font-weight`,fontSize:`--${o}-button-font-size`,lineHeight:`--${o}-button-line-height`,textTransform:`--${o}-button-text-transform`,iconSize:`--${o}-button-icon-size`,effects:{scale:{rest:`--${o}-button-effects-scale--rest`,hover:`--${o}-button-effects-scale--hover`,pressed:`--${o}-button-effects-scale--pressed`}}},S={padding:`--${o}-icon-button-padding`,iconSize:`--${o}-icon-button-icon-size`},C={hover:":hover:not([disabled])",pressed:":active:not([disabled])",disabled:":disabled",focused:":focus-visible",notDisabled:":not(:disabled)"};export{e as AVATAR_SIZE_PREFIX,t as BORDER_RADIUS_PREFIX,r as BORDER_WIDTH_PREFIX,k as BUTTON_CSS_VAR_MAP,b as DARK_COLOR_MODE_CLASSNAME,v as DEFAULT_COLOR_MODE_CLASSNAME,w as DEFAULT_SCALE_MODE_CLASSNAME,n as FONT_FAMILY_PREFIX,d as FONT_SIZE_PREFIX,i as FONT_WEIGHT_PREFIX,S as ICON_BUTTON_CSS_VAR_MAP,s as ICON_SIZE_PREFIX,h as LARGE_SCALE_MODE_CLASSNAME,u as LIGHT_COLOR_MODE_CLASSNAME,a as LINE_HEIGHT_PREFIX,g as MEDIUM_SCALE_MODE_CLASSNAME,l as MOTION_PREFIX,C as PSEUDO_STYLE_SELECTOR_MAP,m as SMALL_SCALE_MODE_CLASSNAME,$ as SPECTRUM_COLOR_PREFIX,c as TEXT_TRANSFORM_PREFIX,o as UDS_PREFIX,p as XLARGE_SCALE_MODE_CLASSNAME,f as XSMALL_SCALE_MODE_CLASSNAME,x as XXLARGE_SCALE_MODE_CLASSNAME,z as XXXLARGE_SCALE_MODE_CLASSNAME};
|
@@ -0,0 +1,2 @@
|
|
1
|
+
"use strict";
|
2
|
+
/*! © 2024 Yahoo, Inc. UDS v0.0.0-development */var l={fontSize:{display1:46,display2:37,display3:33,title1:29,title2:25,title3:21,title4:17,headline1:13,body1:13,label1:12,label2:12,caption1:11,caption2:11,legal1:10},lineHeight:{display1:44,display2:44,display3:44,title1:36,title2:32,title3:28,title4:24,headline1:16,body1:16,label1:16,label2:16,caption1:16,caption2:16,legal1:12}},e={fontSize:{display1:46,display2:38,display3:34,title1:30,title2:26,title3:22,title4:18,headline1:14,body1:14,label1:13,label2:13,caption1:12,caption2:12,legal1:11},lineHeight:{...l.lineHeight,title1:40,headline1:20,body1:20,legal1:16}},t={fontSize:{display1:47,display2:39,display3:35,title1:31,title2:27,title3:23,title4:19,headline1:15,body1:15,label1:13,label2:13,caption1:12,caption2:12,legal1:11},lineHeight:{...e.lineHeight,title2:36,title3:32}},i={fontSize:{...t.fontSize,display1:48,display2:40,display3:36,title1:32,title2:28,title3:24,title4:20,headline1:16,body1:16,label1:14,label2:14},lineHeight:{...t.lineHeight,title2:36,title3:32,headline1:20,body1:20,label1:20,label2:20}},a={fontSize:{display1:50,display2:42,display3:38,title1:34,title2:30,title3:26,title4:22,headline1:18,body1:16,label1:16,label2:16,caption1:14,caption2:14,legal1:13},lineHeight:{...i.lineHeight,title1:44,headline1:24,body1:24,caption1:20,caption2:20}},n={fontSize:{display1:52,display2:44,display3:40,title1:36,title2:32,title3:28,title4:26,headline1:20,body1:20,label1:18,label2:18,caption1:16,caption2:16,legal1:15},lineHeight:{...a.lineHeight,title2:40,title3:36,headline1:28,body1:28,label1:24,label2:24,legal1:20}},o={fontSize:{display1:54,display2:46,display3:42,title1:38,title2:34,title3:30,title4:28,headline1:22,body1:22,label1:20,label2:20,caption1:18,caption2:18,legal1:17},lineHeight:{...n.lineHeight,title1:48,title2:44,title4:32,label1:28,label2:28,caption1:24,caption2:24}};exports.entries=function(l){return Object.entries(l)},exports.fontFamily={display1:"sans",display2:"sans",display3:"sans",title1:"sans",title2:"sans",title3:"sans",title4:"sans",headline1:"sans",body1:"sans",label1:"sans",label2:"sans",caption1:"sans",caption2:"sans",legal1:"sans"},exports.fontWeight={display1:"black",display2:"extrabold",display3:"extrabold",title1:"bold",title2:"bold",title3:"bold",title4:"bold",headline1:"semibold",body1:"regular",label1:"semibold",label2:"regular",caption1:"semibold",caption2:"regular",legal1:"semibold"},exports.fontWeightMap={thin:"100",extralight:"200",light:"300",regular:"400",medium:"500",semibold:"600",bold:"700",extrabold:"800",black:"900"},exports.large=i,exports.mapValues=function(l,e){return Object.keys(l).reduce(((t,i,a)=>(t[i]=e(l[i],i,a),t)),{})},exports.medium=t,exports.small=e,exports.textTransform={display1:"uppercase",display2:"none",display3:"none",title1:"none",title2:"none",title3:"none",title4:"none",headline1:"none",body1:"none",label1:"none",label2:"none",caption1:"none",caption2:"none",legal1:"none"},exports.xLarge=a,exports.xSmall=l,exports.xxLarge=n,exports.xxxLarge=o;
|
@@ -1,3 +1,3 @@
|
|
1
|
-
import{normalIconSizes as e}from"./chunk-
|
2
|
-
/*! © 2024 Yahoo, Inc. UDS
|
3
|
-
var v="undefined"!=typeof process,b={useGetStylesCache:!!v&&"true"===process.env.NEXT_PUBLIC_UDS_FEATURE_USE_STYLE_CACHE,useCLIAuth:!!v&&"true"===process.env.UDS_FEATURE_ENABLE_CLI_AUTH},g=e=>b={...b,...e},
|
1
|
+
import{normalIconSizes as e}from"./chunk-YRYDHL65.js";import{variants as r}from"./chunk-RGE634O5.js";import{lineColors as t,borderWidths as n,borderRadii as o,foregroundColors as s,spectrumColors as c,backgroundColors as i,textVariants as a}from"@yahoo/uds/fixtures";import l from"clsx";import u from"imurmurhash";import{extendTailwindMerge as f}from"tailwind-merge";import{forwardRef as m,Children as d,isValidElement as p,cloneElement as h}from"react";import{jsx as y}from"react/jsx-runtime";
|
2
|
+
/*! © 2024 Yahoo, Inc. UDS v0.0.0-development */
|
3
|
+
var v="undefined"!=typeof process,b={useGetStylesCache:!!v&&"true"===process.env.NEXT_PUBLIC_UDS_FEATURE_USE_STYLE_CACHE,useCLIAuth:!!v&&"true"===process.env.UDS_FEATURE_ENABLE_CLI_AUTH},g=e=>b={...b,...e},E=()=>b;function N(e){return"boolean"==typeof e?`${e}`:0===e?"0":e}function C(e){const r=Object.create(null),t=Object.keys(e);for(let n=0,o=t.length;n<o;n++){const o=t[n];void 0!==e[o]&&(r[o]=e[o])}return r}var _=f({extend:{theme:{borderColor:t,borderWidth:n,borderRadius:o}},override:{classGroups:{"text-color":[{text:[...s,...c]}],"bg-color":[{bg:i}],"font-family":[{font:["icons",...a]}],leading:[{leading:a}]},conflictingClassGroups:{}}}),j=(...e)=>{const r=l(e);return _(r)},w=e=>r=>{if(!e?.variants)return j(e?.base,r?.className);const{variants:t,defaultVariants:n}=e,o=Object.keys(t).map((e=>{const o=r?.[e],s=n?.[e],c=N(o)||N(s);return t[e][c]})),s={...n,...r&&C(r)},c=e?.compoundVariants?.reduce(((e,{className:r,...t})=>Object.entries(t).every((([e,r])=>s[e]===r))?j(e,r):e),"");return j(e?.base,o,c,r?.className)},x=w({variants:r}),S=new Map,A=e=>{const{useGetStylesCache:r}=E();if(r){const r=function(e){const r=Object.create(null),t=Object.keys(e).sort();for(let n=0,o=t.length;n<o;n++){const o=t[n];r[o]=e[o]}return r}(C(e)),t=(new u).hash(JSON.stringify(r)).result();if(S.has(t))return S.get(t);const n=x(r);return S.set(t,n),n}return x(e)},O=m((function({name:r,size:t="md",variant:n="outline",color:o="primary",className:s,...c},i){const a=A({color:o,className:s}),l=e[t];return y("svg",{ref:i,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,viewBox:`0 0 ${l} ${l}`,"aria-hidden":"true",focusable:"false",className:a,...c,children:y(r,{size:t,variant:n})})}));function U(...e){return r=>e.forEach((e=>function(e,r){"function"==typeof e?e(r):null!=e&&(e.current=r)}(e,r)))}function L(){const e=m(((e,t)=>{const{children:o,...s}=e,c=d.toArray(o),i=c.find(n);if(i){const e=i.props.children,n=c.map((r=>r===i?d.count(e)>1?d.only(null):p(e)?e.props.children:null:r));return y(r,{...s,ref:t,children:p(e)?h(e,void 0,n):null})}return y(r,{...s,ref:t,children:o})}));e.displayName="Slot";const r=m(((e,r)=>{const{children:t,...n}=e;return p(t)?h(t,{...o(n,t.props),ref:r?U(r,t.ref):t.ref}):d.count(t)>1?d.only(null):null}));r.displayName="SlotClone";const t=({children:e})=>e;function n(e){return p(e)&&e.type===t}function o(e,r){const t={...r};for(const n in r){const o=e[n],s=r[n];/^on[A-Z]/.test(n)?o&&s?t[n]=(...e)=>{s(...e),o(...e)}:o&&(t[n]=o):"style"===n&&(t[n]={...o,...s})}return{...e,...t}}return e}export{O as Icon,L as createSlot,w as cva,j as cx,E as getFeatureFlags,A as getStyles,g as updateFeatureFlags};
|
@@ -1,3 +1,3 @@
|
|
1
|
-
"use strict";var t=require("./chunk-
|
2
|
-
/*! © 2024 Yahoo, Inc. UDS
|
3
|
-
function e(e){const{palette:o,spectrum:n}=e,i={},a={spectrum:{},palette:{}};for(const[e,o]of t.entries(n))for(const[n,s]of t.entries(o)){const t=`${e}-${n}`,o=`--${r.SPECTRUM_COLOR_PREFIX}-${t}`;a.spectrum[e]||(a.spectrum[e]={}),a.spectrum[e][n]=`rgb(var(${o}))`,i[o]=s}return t.entries(o).forEach((([t,e])=>{for(const[o,{hue:n,step:s,opacity:c}]of Object.entries(e)){t in a.palette||(a.palette[t]={});const e=`--${r.UDS_PREFIX}-${t}-color-${o}`;i[e]=`var(--${r.SPECTRUM_COLOR_PREFIX}-${n}-${s})`,a.palette[t][o]=c?`rgb(var(${e}) / ${c})`:`rgb(var(${e}))`}})),{_vars:i,_raw:e,tailwindConfig:a}}function o(e){const o={},n={};for(const[i,a="regular"]of t.entries(e)){const e=`--${r.FONT_WEIGHT_PREFIX}-${i}`,s="number"==typeof a?`${a}`:t.fontWeightMap[a];o[e]=s,n[i]=`var(${e})`}return{_vars:o,_raw:e,tailwindConfig:{...t.fontWeightMap,...n}}}function n(r,e,o){const n={},i={};for(const[a,s]of t.entries(e)){const t=`--${r}-${a}`,e=o?o(s):s;n[t]=e,i[a]=`var(${t})`}return{_vars:n,_raw:e,tailwindConfig:i}}function i(r,e){if(!e)return{_vars:{},_raw:{},tailwindConfig:{}};const o={},n={};for(const[i,a]of t.entries(e)){const t=`--${r}-${i}`,e=`${a}px`;o[t]=e,n[i]=`var(${t})`}return{_vars:o,_raw:e,tailwindConfig:n}}exports.parseTokens=function(a){const{colorMode:s,scaleMode:c}=a;return{...a,colorMode:{light:e(s.light),dark:e(s.dark)},scaleMode:t.mapValues(c,(({borderRadius:t,borderWidth:e,fontSize:a,lineHeight:s,fontFamily:c,fontWeight:f,textTransform:_,avatarSizes:
|
1
|
+
"use strict";var t=require("./chunk-3LHMB72F.cjs"),r=require("./chunk-J6D4HCFT.cjs");
|
2
|
+
/*! © 2024 Yahoo, Inc. UDS v0.0.0-development */
|
3
|
+
function e(e){const{palette:o,spectrum:n}=e,i={},a={spectrum:{},palette:{}};for(const[e,o]of t.entries(n))for(const[n,s]of t.entries(o)){const t=`${e}-${n}`,o=`--${r.SPECTRUM_COLOR_PREFIX}-${t}`;a.spectrum[e]||(a.spectrum[e]={}),a.spectrum[e][n]=`rgb(var(${o}))`,i[o]=s}return t.entries(o).forEach((([t,e])=>{for(const[o,{hue:n,step:s,opacity:c}]of Object.entries(e)){t in a.palette||(a.palette[t]={});const e=`--${r.UDS_PREFIX}-${t}-color-${o}`;i[e]=`var(--${r.SPECTRUM_COLOR_PREFIX}-${n}-${s})`,a.palette[t][o]=c?`rgb(var(${e}) / ${c})`:`rgb(var(${e}))`}})),{_vars:i,_raw:e,tailwindConfig:a}}function o(e){const o={},n={};for(const[i,a="regular"]of t.entries(e)){const e=`--${r.FONT_WEIGHT_PREFIX}-${i}`,s="number"==typeof a?`${a}`:t.fontWeightMap[a];o[e]=s,n[i]=`var(${e})`}return{_vars:o,_raw:e,tailwindConfig:{...t.fontWeightMap,...n}}}function n(r,e,o){const n={},i={};for(const[a,s]of t.entries(e)){const t=`--${r}-${a}`,e=o?o(s):s;n[t]=e,i[a]=`var(${t})`}return{_vars:n,_raw:e,tailwindConfig:i}}function i(r,e){if(!e)return{_vars:{},_raw:{},tailwindConfig:{}};const o={},n={};for(const[i,a]of t.entries(e)){const t=`--${r}-${i}`,e=`${a}px`;o[t]=e,n[i]=`var(${t})`}return{_vars:o,_raw:e,tailwindConfig:n}}exports.parseTokens=function(a){const{colorMode:s,scaleMode:c}=a;return{...a,colorMode:{light:e(s.light),dark:e(s.dark)},scaleMode:t.mapValues(c,(({borderRadius:t,borderWidth:e,fontSize:a,lineHeight:s,fontFamily:c,fontWeight:f,textTransform:_,avatarSizes:u,iconSizes:R})=>({fontFamily:n(r.FONT_FAMILY_PREFIX,c,(t=>`var(--${r.FONT_FAMILY_PREFIX}-${t})`)),fontSize:i(r.FONT_SIZE_PREFIX,a),fontWeight:o(f),lineHeight:i(r.LINE_HEIGHT_PREFIX,s),textTransform:n(r.TEXT_TRANSFORM_PREFIX,_),borderRadius:i(r.BORDER_RADIUS_PREFIX,t),borderWidth:i(r.BORDER_WIDTH_PREFIX,e),avatarSizes:i(r.AVATAR_SIZE_PREFIX,u),iconSizes:i(r.ICON_SIZE_PREFIX,R)})))}};
|
@@ -1,2 +1,2 @@
|
|
1
|
-
/*! © 2024 Yahoo, Inc. UDS
|
1
|
+
/*! © 2024 Yahoo, Inc. UDS v0.0.0-development */
|
2
2
|
var l={display1:"sans",display2:"sans",display3:"sans",title1:"sans",title2:"sans",title3:"sans",title4:"sans",headline1:"sans",body1:"sans",label1:"sans",label2:"sans",caption1:"sans",caption2:"sans",legal1:"sans"},e={thin:"100",extralight:"200",light:"300",regular:"400",medium:"500",semibold:"600",bold:"700",extrabold:"800",black:"900"},i={display1:"black",display2:"extrabold",display3:"extrabold",title1:"bold",title2:"bold",title3:"bold",title4:"bold",headline1:"semibold",body1:"regular",label1:"semibold",label2:"regular",caption1:"semibold",caption2:"regular",legal1:"semibold"},t={display1:"uppercase",display2:"none",display3:"none",title1:"none",title2:"none",title3:"none",title4:"none",headline1:"none",body1:"none",label1:"none",label2:"none",caption1:"none",caption2:"none",legal1:"none"},a={fontSize:{display1:46,display2:37,display3:33,title1:29,title2:25,title3:21,title4:17,headline1:13,body1:13,label1:12,label2:12,caption1:11,caption2:11,legal1:10},lineHeight:{display1:44,display2:44,display3:44,title1:36,title2:32,title3:28,title4:24,headline1:16,body1:16,label1:16,label2:16,caption1:16,caption2:16,legal1:12}},n={fontSize:{display1:46,display2:38,display3:34,title1:30,title2:26,title3:22,title4:18,headline1:14,body1:14,label1:13,label2:13,caption1:12,caption2:12,legal1:11},lineHeight:{...a.lineHeight,title1:40,headline1:20,body1:20,legal1:16}},d={fontSize:{display1:47,display2:39,display3:35,title1:31,title2:27,title3:23,title4:19,headline1:15,body1:15,label1:13,label2:13,caption1:12,caption2:12,legal1:11},lineHeight:{...n.lineHeight,title2:36,title3:32}},o={fontSize:{...d.fontSize,display1:48,display2:40,display3:36,title1:32,title2:28,title3:24,title4:20,headline1:16,body1:16,label1:14,label2:14},lineHeight:{...d.lineHeight,title2:36,title3:32,headline1:20,body1:20,label1:20,label2:20}},s={fontSize:{display1:50,display2:42,display3:38,title1:34,title2:30,title3:26,title4:22,headline1:18,body1:16,label1:16,label2:16,caption1:14,caption2:14,legal1:13},lineHeight:{...o.lineHeight,title1:44,headline1:24,body1:24,caption1:20,caption2:20}},b={fontSize:{display1:52,display2:44,display3:40,title1:36,title2:32,title3:28,title4:26,headline1:20,body1:20,label1:18,label2:18,caption1:16,caption2:16,legal1:15},lineHeight:{...s.lineHeight,title2:40,title3:36,headline1:28,body1:28,label1:24,label2:24,legal1:20}},p={fontSize:{display1:54,display2:46,display3:42,title1:38,title2:34,title3:30,title4:28,headline1:22,body1:22,label1:20,label2:20,caption1:18,caption2:18,legal1:17},lineHeight:{...b.lineHeight,title1:48,title2:44,title4:32,label1:28,label2:28,caption1:24,caption2:24}};function y(l){return Object.entries(l)}function c(l,e){return Object.keys(l).reduce(((i,t,a)=>(i[t]=e(l[t],t,a),i)),{})}export{y as entries,l as fontFamily,i as fontWeight,e as fontWeightMap,o as large,c as mapValues,d as medium,n as small,t as textTransform,s as xLarge,a as xSmall,b as xxLarge,p as xxxLarge};
|
@@ -1,3 +1,3 @@
|
|
1
|
-
import{fromEntries as r,FONT_DECLARATIONS_MAP as o}from"./chunk-
|
2
|
-
/*! © 2024 Yahoo, Inc. UDS
|
1
|
+
import{fromEntries as r,FONT_DECLARATIONS_MAP as o}from"./chunk-YRYDHL65.js";import{entries as a}from"./chunk-BEYSF2MO.js";import{FONT_FAMILY_PREFIX as e}from"./chunk-33B23P5G.js";import n from"tailwindcss/plugin";
|
2
|
+
/*! © 2024 Yahoo, Inc. UDS v0.0.0-development */
|
3
3
|
function t(r,a){for(const e of r){const{declarations:r}=o[e];for(const o of r)a({"@font-face":o})}}var s=n.withOptions((function({fontIds:r}){return function({addBase:o}){t(r,o)}}));function i(r){return{light:{colorScheme:"light",...r.colorMode.light._vars},dark:{colorScheme:"dark",...r.colorMode.dark._vars}}}function c(r){return r.flatMap((r=>{const{declarations:a}=o[r];return a.map((r=>r))}))}function l(r){return`"${r}"`}function f(n){return r(a(n).map((([r,a])=>{const n=`--${e}-${r}`,t=o[a];return[n,[t.declarations[0].fontFamily,...t.fallback].map(l).join(", ")]})))}function d(r){return{...r.borderRadius._vars,...r.borderWidth._vars,...r.avatarSizes._vars,...r.iconSizes._vars,...r.fontFamily._vars,...r.fontSize._vars,...r.fontWeight._vars,...r.lineHeight._vars,...r.textTransform._vars}}function u(r){return{xSmall:d(r.scaleMode.xSmall),small:d(r.scaleMode.small),medium:d(r.scaleMode.medium),large:d(r.scaleMode.large),xLarge:d(r.scaleMode.xLarge),xxLarge:d(r.scaleMode.xxLarge),xxxLarge:d(r.scaleMode.xxxLarge)}}export{t as addFontFaceDeclarations,s as addFontsPlugin,i as getColorModeStyles,c as getFontFaceDeclarations,f as getFontStyles,u as getScaleModeStyles};
|
@@ -1,2 +1,2 @@
|
|
1
|
-
/*! © 2024 Yahoo, Inc. UDS
|
1
|
+
/*! © 2024 Yahoo, Inc. UDS v0.0.0-development */
|
2
2
|
var e=(e=>"undefined"!=typeof require?require:"undefined"!=typeof Proxy?new Proxy(e,{get:(e,r)=>("undefined"!=typeof require?require:e)[r]}):e)((function(e){if("undefined"!=typeof require)return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')}));export{e as __require};
|
@@ -0,0 +1,2 @@
|
|
1
|
+
"use strict";
|
2
|
+
/*! © 2024 Yahoo, Inc. UDS v0.0.0-development */var o="uds",e=`${o}-avatar-size`,t=`${o}-border-radius`,r=`${o}-border-width`,s=`${o}-font`,_=`${o}-font-size`,E=`${o}-font-weight`,n=`${o}-icon-size`,d=`${o}-line-height`,A=`${o}-motion`,i=`${o}-spectrum-color`,S=`${o}-text-transform`,a=`${o}-color-mode-dark`,l=`${o}-color-mode-light`,L=`${o}-scale-mode-xsmall`,$=`${o}-scale-mode-small`,c=`${o}-scale-mode-medium`,p=`${o}-scale-mode-large`,x=`${o}-scale-mode-xlarge`,b=`${o}-scale-mode-xxlarge`,R=`${o}-scale-mode-xxxlarge`,M=l,O=p,C={borderRadius:`--${o}-button-border-radius`,borderWidth:`--${o}-button-border-width`,color:`--${o}-button-color`,backgroundColor:`--${o}-button-background-color`,borderColor:`--${o}-button-border-color`,padding:`--${o}-button-padding`,columnGap:`--${o}-button-gap`,fontFamily:`--${o}-button-font`,fontWeight:`--${o}-button-font-weight`,fontSize:`--${o}-button-font-size`,lineHeight:`--${o}-button-line-height`,textTransform:`--${o}-button-text-transform`,iconSize:`--${o}-button-icon-size`,effects:{scale:{rest:`--${o}-button-effects-scale--rest`,hover:`--${o}-button-effects-scale--hover`,pressed:`--${o}-button-effects-scale--pressed`}}},u={padding:`--${o}-icon-button-padding`,iconSize:`--${o}-icon-button-icon-size`};exports.AVATAR_SIZE_PREFIX=e,exports.BORDER_RADIUS_PREFIX=t,exports.BORDER_WIDTH_PREFIX=r,exports.BUTTON_CSS_VAR_MAP=C,exports.DARK_COLOR_MODE_CLASSNAME=a,exports.DEFAULT_COLOR_MODE_CLASSNAME=M,exports.DEFAULT_SCALE_MODE_CLASSNAME=O,exports.FONT_FAMILY_PREFIX=s,exports.FONT_SIZE_PREFIX=_,exports.FONT_WEIGHT_PREFIX=E,exports.ICON_BUTTON_CSS_VAR_MAP=u,exports.ICON_SIZE_PREFIX=n,exports.LARGE_SCALE_MODE_CLASSNAME=p,exports.LIGHT_COLOR_MODE_CLASSNAME=l,exports.LINE_HEIGHT_PREFIX=d,exports.MEDIUM_SCALE_MODE_CLASSNAME=c,exports.MOTION_PREFIX=A,exports.PSEUDO_STYLE_SELECTOR_MAP={hover:":hover:not([disabled])",pressed:":active:not([disabled])",disabled:":disabled",focused:":focus-visible",notDisabled:":not(:disabled)"},exports.SMALL_SCALE_MODE_CLASSNAME=$,exports.SPECTRUM_COLOR_PREFIX=i,exports.TEXT_TRANSFORM_PREFIX=S,exports.UDS_PREFIX=o,exports.XLARGE_SCALE_MODE_CLASSNAME=x,exports.XSMALL_SCALE_MODE_CLASSNAME=L,exports.XXLARGE_SCALE_MODE_CLASSNAME=b,exports.XXXLARGE_SCALE_MODE_CLASSNAME=R;
|