@payloadcms/figma 0.0.1-alpha.0 → 0.0.1-alpha.10
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/api/control-plane.d.ts.map +1 -1
- package/dist/api/control-plane.js +2 -7
- package/dist/api/control-plane.js.map +1 -1
- package/dist/api/figma-api.js +3 -3
- package/dist/api/figma-api.js.map +1 -1
- package/dist/auth/jwt-validator.js.map +1 -1
- package/dist/auth/oauth-flow.d.ts.map +1 -1
- package/dist/auth/oauth-flow.js +3 -6
- package/dist/auth/oauth-flow.js.map +1 -1
- package/dist/auth/project-token.d.ts.map +1 -1
- package/dist/auth/project-token.js +1 -4
- package/dist/auth/project-token.js.map +1 -1
- package/dist/auth/refresh.d.ts.map +1 -1
- package/dist/auth/refresh.js +19 -28
- package/dist/auth/refresh.js.map +1 -1
- package/dist/auth/types.d.ts +1 -1
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/auth/types.js.map +1 -1
- package/dist/cli.js +1 -3
- package/dist/cli.js.map +1 -1
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +17 -10
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/init.d.ts +4 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +21 -85
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/list-tokens.d.ts +1 -1
- package/dist/commands/list-tokens.d.ts.map +1 -1
- package/dist/commands/list-tokens.js +6 -5
- package/dist/commands/list-tokens.js.map +1 -1
- package/dist/commands/login.d.ts +2 -11
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +4 -7
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.d.ts +1 -1
- package/dist/commands/logout.js +1 -1
- package/dist/commands/logout.js.map +1 -1
- package/dist/exports/client.d.ts +3 -0
- package/dist/exports/client.d.ts.map +1 -0
- package/dist/exports/client.js +4 -0
- package/dist/exports/client.js.map +1 -0
- package/dist/oauth/components/LoginButton/index.d.ts +9 -0
- package/dist/oauth/components/LoginButton/index.d.ts.map +1 -0
- package/dist/oauth/components/LoginButton/index.js +52 -0
- package/dist/oauth/components/LoginButton/index.js.map +1 -0
- package/dist/oauth/components/LoginButton/index.scss +10 -0
- package/dist/oauth/components/LogoutButton/index.d.ts +7 -0
- package/dist/oauth/components/LogoutButton/index.d.ts.map +1 -0
- package/dist/oauth/components/LogoutButton/index.js +67 -0
- package/dist/oauth/components/LogoutButton/index.js.map +1 -0
- package/dist/oauth/components/LogoutButton/index.scss +10 -0
- package/dist/oauth/defaults.d.ts +10 -0
- package/dist/oauth/defaults.d.ts.map +1 -0
- package/dist/oauth/defaults.js +91 -0
- package/dist/oauth/defaults.js.map +1 -0
- package/dist/oauth/endpoints/getLoginEndpoint.d.ts +13 -0
- package/dist/oauth/endpoints/getLoginEndpoint.d.ts.map +1 -0
- package/dist/oauth/endpoints/getLoginEndpoint.js +237 -0
- package/dist/oauth/endpoints/getLoginEndpoint.js.map +1 -0
- package/dist/oauth/endpoints/getLogoutEndpoint.d.ts +12 -0
- package/dist/oauth/endpoints/getLogoutEndpoint.d.ts.map +1 -0
- package/dist/oauth/endpoints/getLogoutEndpoint.js +99 -0
- package/dist/oauth/endpoints/getLogoutEndpoint.js.map +1 -0
- package/dist/oauth/endpoints/getMetaEndpoint.d.ts +13 -0
- package/dist/oauth/endpoints/getMetaEndpoint.d.ts.map +1 -0
- package/dist/oauth/endpoints/getMetaEndpoint.js +25 -0
- package/dist/oauth/endpoints/getMetaEndpoint.js.map +1 -0
- package/dist/oauth/endpoints/getRedirectToLoginEndpoint.d.ts +13 -0
- package/dist/oauth/endpoints/getRedirectToLoginEndpoint.d.ts.map +1 -0
- package/dist/oauth/endpoints/getRedirectToLoginEndpoint.js +21 -0
- package/dist/oauth/endpoints/getRedirectToLoginEndpoint.js.map +1 -0
- package/dist/oauth/exports/client.d.ts +3 -0
- package/dist/oauth/exports/client.d.ts.map +1 -0
- package/dist/oauth/exports/client.js +4 -0
- package/dist/oauth/exports/client.js.map +1 -0
- package/dist/oauth/hooks/afterLogout.d.ts +8 -0
- package/dist/oauth/hooks/afterLogout.d.ts.map +1 -0
- package/dist/oauth/hooks/afterLogout.js +27 -0
- package/dist/oauth/hooks/afterLogout.js.map +1 -0
- package/dist/oauth/hooks/me.d.ts +5 -0
- package/dist/oauth/hooks/me.d.ts.map +1 -0
- package/dist/oauth/hooks/me.js +55 -0
- package/dist/oauth/hooks/me.js.map +1 -0
- package/dist/oauth/hooks/refresh.d.ts +8 -0
- package/dist/oauth/hooks/refresh.d.ts.map +1 -0
- package/dist/oauth/hooks/refresh.js +91 -0
- package/dist/oauth/hooks/refresh.js.map +1 -0
- package/dist/oauth/index.d.ts +4 -0
- package/dist/oauth/index.d.ts.map +1 -0
- package/dist/oauth/index.js +222 -0
- package/dist/oauth/index.js.map +1 -0
- package/dist/oauth/strategy/index.d.ts +54 -0
- package/dist/oauth/strategy/index.d.ts.map +1 -0
- package/dist/oauth/strategy/index.js +280 -0
- package/dist/oauth/strategy/index.js.map +1 -0
- package/dist/oauth/types.d.ts +192 -0
- package/dist/oauth/types.d.ts.map +1 -0
- package/dist/oauth/types.js +3 -0
- package/dist/oauth/types.js.map +1 -0
- package/dist/oauth/utilities/clearCookie.d.ts +9 -0
- package/dist/oauth/utilities/clearCookie.d.ts.map +1 -0
- package/dist/oauth/utilities/clearCookie.js +21 -0
- package/dist/oauth/utilities/clearCookie.js.map +1 -0
- package/dist/oauth/utilities/createCookieOptions.d.ts +10 -0
- package/dist/oauth/utilities/createCookieOptions.d.ts.map +1 -0
- package/dist/oauth/utilities/createCookieOptions.js +42 -0
- package/dist/oauth/utilities/createCookieOptions.js.map +1 -0
- package/dist/oauth/utilities/createDebugLogger.d.ts +4 -0
- package/dist/oauth/utilities/createDebugLogger.d.ts.map +1 -0
- package/dist/oauth/utilities/createDebugLogger.js +16 -0
- package/dist/oauth/utilities/createDebugLogger.js.map +1 -0
- package/dist/oauth/utilities/extractOrigin.d.ts +2 -0
- package/dist/oauth/utilities/extractOrigin.d.ts.map +1 -0
- package/dist/oauth/utilities/extractOrigin.js +12 -0
- package/dist/oauth/utilities/extractOrigin.js.map +1 -0
- package/dist/oauth/utilities/getAdminCollectionSlug.d.ts +3 -0
- package/dist/oauth/utilities/getAdminCollectionSlug.d.ts.map +1 -0
- package/dist/oauth/utilities/getAdminCollectionSlug.js +18 -0
- package/dist/oauth/utilities/getAdminCollectionSlug.js.map +1 -0
- package/dist/oauth/utilities/getAdminPath.d.ts +8 -0
- package/dist/oauth/utilities/getAdminPath.d.ts.map +1 -0
- package/dist/oauth/utilities/getAdminPath.js +9 -0
- package/dist/oauth/utilities/getAdminPath.js.map +1 -0
- package/dist/oauth/utilities/getAuthorizeURL.d.ts +17 -0
- package/dist/oauth/utilities/getAuthorizeURL.d.ts.map +1 -0
- package/dist/oauth/utilities/getAuthorizeURL.js +45 -0
- package/dist/oauth/utilities/getAuthorizeURL.js.map +1 -0
- package/dist/oauth/utilities/getCookieExpiration.d.ts +4 -0
- package/dist/oauth/utilities/getCookieExpiration.d.ts.map +1 -0
- package/dist/oauth/utilities/getCookieExpiration.js +11 -0
- package/dist/oauth/utilities/getCookieExpiration.js.map +1 -0
- package/dist/oauth/utilities/getSecondsFromTokenExp.d.ts +2 -0
- package/dist/oauth/utilities/getSecondsFromTokenExp.d.ts.map +1 -0
- package/dist/oauth/utilities/getSecondsFromTokenExp.js +7 -0
- package/dist/oauth/utilities/getSecondsFromTokenExp.js.map +1 -0
- package/dist/oauth/utilities/getTokenExp.d.ts +6 -0
- package/dist/oauth/utilities/getTokenExp.d.ts.map +1 -0
- package/dist/oauth/utilities/getTokenExp.js +20 -0
- package/dist/oauth/utilities/getTokenExp.js.map +1 -0
- package/dist/oauth/utilities/getUsernameField.d.ts +9 -0
- package/dist/oauth/utilities/getUsernameField.d.ts.map +1 -0
- package/dist/oauth/utilities/getUsernameField.js +20 -0
- package/dist/oauth/utilities/getUsernameField.js.map +1 -0
- package/dist/oauth/utilities/hasUserTokenPropsChanged.d.ts +8 -0
- package/dist/oauth/utilities/hasUserTokenPropsChanged.d.ts.map +1 -0
- package/dist/oauth/utilities/hasUserTokenPropsChanged.js +25 -0
- package/dist/oauth/utilities/hasUserTokenPropsChanged.js.map +1 -0
- package/dist/oauth/utilities/mergeHeaders.d.ts +2 -0
- package/dist/oauth/utilities/mergeHeaders.d.ts.map +1 -0
- package/dist/oauth/utilities/mergeHeaders.js +37 -0
- package/dist/oauth/utilities/mergeHeaders.js.map +1 -0
- package/dist/oauth/utilities/refreshTokens.d.ts +16 -0
- package/dist/oauth/utilities/refreshTokens.d.ts.map +1 -0
- package/dist/oauth/utilities/refreshTokens.js +67 -0
- package/dist/oauth/utilities/refreshTokens.js.map +1 -0
- package/dist/plugin/build-config.d.ts +7 -1
- package/dist/plugin/build-config.d.ts.map +1 -1
- package/dist/plugin/build-config.js +29 -2
- package/dist/plugin/build-config.js.map +1 -1
- package/dist/types/config.d.ts +0 -11
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +1 -1
- package/dist/types/config.js.map +1 -1
- package/dist/utils/config.d.ts +0 -22
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +0 -46
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/messages.js +11 -11
- package/dist/utils/messages.js.map +1 -1
- package/dist/utils/payload-config-ast.d.ts +17 -1
- package/dist/utils/payload-config-ast.d.ts.map +1 -1
- package/dist/utils/payload-config-ast.js +166 -14
- package/dist/utils/payload-config-ast.js.map +1 -1
- package/dist/utils/payload-config-modifier.d.ts +2 -1
- package/dist/utils/payload-config-modifier.d.ts.map +1 -1
- package/dist/utils/payload-config-modifier.js +50 -79
- package/dist/utils/payload-config-modifier.js.map +1 -1
- package/dist/utils/payload-package-check.d.ts.map +1 -1
- package/dist/utils/payload-package-check.js +14 -33
- package/dist/utils/payload-package-check.js.map +1 -1
- package/dist/utils/project.d.ts +1 -1
- package/dist/utils/project.d.ts.map +1 -1
- package/dist/utils/project.js +3 -5
- package/dist/utils/project.js.map +1 -1
- package/dist/utils/s3-upload.d.ts.map +1 -1
- package/dist/utils/s3-upload.js +3 -8
- package/dist/utils/s3-upload.js.map +1 -1
- package/dist/utils/token-display.d.ts.map +1 -1
- package/dist/utils/token-display.js +3 -2
- package/dist/utils/token-display.js.map +1 -1
- package/package.json +13 -5
- package/dist/api/control-plane.spec.d.ts +0 -2
- package/dist/api/control-plane.spec.d.ts.map +0 -1
- package/dist/api/control-plane.spec.js +0 -296
- package/dist/api/control-plane.spec.js.map +0 -1
- package/dist/api/figma-api.spec.d.ts +0 -14
- package/dist/api/figma-api.spec.d.ts.map +0 -1
- package/dist/api/figma-api.spec.js +0 -201
- package/dist/api/figma-api.spec.js.map +0 -1
- package/dist/auth/__tests__/fixtures.d.ts +0 -26
- package/dist/auth/__tests__/fixtures.d.ts.map +0 -1
- package/dist/auth/__tests__/fixtures.js +0 -67
- package/dist/auth/__tests__/fixtures.js.map +0 -1
- package/dist/auth/__tests__/mocks.d.ts +0 -33
- package/dist/auth/__tests__/mocks.d.ts.map +0 -1
- package/dist/auth/__tests__/mocks.js +0 -63
- package/dist/auth/__tests__/mocks.js.map +0 -1
- package/dist/auth/callback-server.spec.d.ts +0 -2
- package/dist/auth/callback-server.spec.d.ts.map +0 -1
- package/dist/auth/callback-server.spec.js +0 -85
- package/dist/auth/callback-server.spec.js.map +0 -1
- package/dist/auth/crypto-utils.spec.d.ts +0 -2
- package/dist/auth/crypto-utils.spec.d.ts.map +0 -1
- package/dist/auth/crypto-utils.spec.js +0 -36
- package/dist/auth/crypto-utils.spec.js.map +0 -1
- package/dist/auth/jwt-validator.spec.d.ts +0 -10
- package/dist/auth/jwt-validator.spec.d.ts.map +0 -1
- package/dist/auth/jwt-validator.spec.js +0 -236
- package/dist/auth/jwt-validator.spec.js.map +0 -1
- package/dist/auth/oauth-flow.spec.d.ts +0 -2
- package/dist/auth/oauth-flow.spec.d.ts.map +0 -1
- package/dist/auth/oauth-flow.spec.js +0 -134
- package/dist/auth/oauth-flow.spec.js.map +0 -1
- package/dist/auth/pkce.spec.d.ts +0 -2
- package/dist/auth/pkce.spec.d.ts.map +0 -1
- package/dist/auth/pkce.spec.js +0 -32
- package/dist/auth/pkce.spec.js.map +0 -1
- package/dist/auth/project-token.spec.d.ts +0 -2
- package/dist/auth/project-token.spec.d.ts.map +0 -1
- package/dist/auth/project-token.spec.js +0 -332
- package/dist/auth/project-token.spec.js.map +0 -1
- package/dist/auth/refresh.spec.d.ts +0 -2
- package/dist/auth/refresh.spec.d.ts.map +0 -1
- package/dist/auth/refresh.spec.js +0 -105
- package/dist/auth/refresh.spec.js.map +0 -1
- package/dist/auth/token-store.spec.d.ts +0 -2
- package/dist/auth/token-store.spec.d.ts.map +0 -1
- package/dist/auth/token-store.spec.js +0 -276
- package/dist/auth/token-store.spec.js.map +0 -1
- package/dist/commands/__tests__/test-utils.d.ts +0 -28
- package/dist/commands/__tests__/test-utils.d.ts.map +0 -1
- package/dist/commands/__tests__/test-utils.js +0 -34
- package/dist/commands/__tests__/test-utils.js.map +0 -1
- package/dist/commands/deploy.spec.d.ts +0 -2
- package/dist/commands/deploy.spec.d.ts.map +0 -1
- package/dist/commands/deploy.spec.js +0 -18
- package/dist/commands/deploy.spec.js.map +0 -1
- package/dist/commands/init.spec.d.ts +0 -2
- package/dist/commands/init.spec.d.ts.map +0 -1
- package/dist/commands/init.spec.js +0 -283
- package/dist/commands/init.spec.js.map +0 -1
- package/dist/plugin/build-config.spec.d.ts +0 -2
- package/dist/plugin/build-config.spec.d.ts.map +0 -1
- package/dist/plugin/build-config.spec.js +0 -72
- package/dist/plugin/build-config.spec.js.map +0 -1
- package/dist/utils/asset-collection.spec.d.ts +0 -2
- package/dist/utils/asset-collection.spec.d.ts.map +0 -1
- package/dist/utils/asset-collection.spec.js +0 -155
- package/dist/utils/asset-collection.spec.js.map +0 -1
- package/dist/utils/build-detection.spec.d.ts +0 -2
- package/dist/utils/build-detection.spec.d.ts.map +0 -1
- package/dist/utils/build-detection.spec.js +0 -110
- package/dist/utils/build-detection.spec.js.map +0 -1
- package/dist/utils/config.spec.d.ts +0 -2
- package/dist/utils/config.spec.d.ts.map +0 -1
- package/dist/utils/config.spec.js +0 -167
- package/dist/utils/config.spec.js.map +0 -1
- package/dist/utils/download-template.spec.d.ts +0 -2
- package/dist/utils/download-template.spec.d.ts.map +0 -1
- package/dist/utils/download-template.spec.js +0 -76
- package/dist/utils/download-template.spec.js.map +0 -1
- package/dist/utils/env-management.spec.d.ts +0 -2
- package/dist/utils/env-management.spec.d.ts.map +0 -1
- package/dist/utils/env-management.spec.js +0 -123
- package/dist/utils/env-management.spec.js.map +0 -1
- package/dist/utils/git.spec.d.ts +0 -2
- package/dist/utils/git.spec.d.ts.map +0 -1
- package/dist/utils/git.spec.js +0 -99
- package/dist/utils/git.spec.js.map +0 -1
- package/dist/utils/lambda-config.spec.d.ts +0 -2
- package/dist/utils/lambda-config.spec.d.ts.map +0 -1
- package/dist/utils/lambda-config.spec.js +0 -141
- package/dist/utils/lambda-config.spec.js.map +0 -1
- package/dist/utils/payload-config-ast.spec.d.ts +0 -2
- package/dist/utils/payload-config-ast.spec.d.ts.map +0 -1
- package/dist/utils/payload-config-ast.spec.js +0 -303
- package/dist/utils/payload-config-ast.spec.js.map +0 -1
- package/dist/utils/payload-config-modifier.int.spec.d.ts +0 -2
- package/dist/utils/payload-config-modifier.int.spec.d.ts.map +0 -1
- package/dist/utils/payload-config-modifier.int.spec.js +0 -116
- package/dist/utils/payload-config-modifier.int.spec.js.map +0 -1
- package/dist/utils/payload-config-modifier.spec.d.ts +0 -2
- package/dist/utils/payload-config-modifier.spec.d.ts.map +0 -1
- package/dist/utils/payload-config-modifier.spec.js +0 -162
- package/dist/utils/payload-config-modifier.spec.js.map +0 -1
- package/dist/utils/payload-package-check.spec.d.ts +0 -2
- package/dist/utils/payload-package-check.spec.d.ts.map +0 -1
- package/dist/utils/payload-package-check.spec.js +0 -148
- package/dist/utils/payload-package-check.spec.js.map +0 -1
- package/dist/utils/project.spec.d.ts +0 -2
- package/dist/utils/project.spec.d.ts.map +0 -1
- package/dist/utils/project.spec.js +0 -222
- package/dist/utils/project.spec.js.map +0 -1
- package/dist/utils/s3-upload.spec.d.ts +0 -2
- package/dist/utils/s3-upload.spec.d.ts.map +0 -1
- package/dist/utils/s3-upload.spec.js +0 -140
- package/dist/utils/s3-upload.spec.js.map +0 -1
|
@@ -1,283 +0,0 @@
|
|
|
1
|
-
import * as p from '@clack/prompts';
|
|
2
|
-
import fs from 'fs/promises';
|
|
3
|
-
import path from 'path';
|
|
4
|
-
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
5
|
-
import * as controlPlane from '../api/control-plane.js';
|
|
6
|
-
import { getValidAccessToken } from '../auth/oauth-flow.js';
|
|
7
|
-
import * as config from '../utils/config.js';
|
|
8
|
-
import * as payloadConfigModifier from '../utils/payload-config-modifier.js';
|
|
9
|
-
import * as project from '../utils/project.js';
|
|
10
|
-
import { mockProcessExit } from './__tests__/test-utils.js';
|
|
11
|
-
import { initCommand } from './init.js';
|
|
12
|
-
// Mock dependencies
|
|
13
|
-
vi.mock('@clack/prompts', ()=>{
|
|
14
|
-
const mockLog = {
|
|
15
|
-
error: vi.fn(),
|
|
16
|
-
info: vi.fn(),
|
|
17
|
-
step: vi.fn(),
|
|
18
|
-
success: vi.fn(),
|
|
19
|
-
warn: vi.fn()
|
|
20
|
-
};
|
|
21
|
-
return {
|
|
22
|
-
cancel: vi.fn(),
|
|
23
|
-
confirm: vi.fn(),
|
|
24
|
-
intro: vi.fn(),
|
|
25
|
-
isCancel: vi.fn((value)=>value === Symbol.for('clack.cancel')),
|
|
26
|
-
log: mockLog,
|
|
27
|
-
note: vi.fn(),
|
|
28
|
-
outro: vi.fn(),
|
|
29
|
-
select: vi.fn(),
|
|
30
|
-
spinner: vi.fn(()=>({
|
|
31
|
-
start: vi.fn(),
|
|
32
|
-
stop: vi.fn()
|
|
33
|
-
})),
|
|
34
|
-
text: vi.fn()
|
|
35
|
-
};
|
|
36
|
-
});
|
|
37
|
-
vi.mock('../auth/oauth-flow.js', ()=>({
|
|
38
|
-
getValidAccessToken: vi.fn()
|
|
39
|
-
}));
|
|
40
|
-
vi.mock('../auth/token-store.js', ()=>({
|
|
41
|
-
TokenStore: vi.fn(()=>({
|
|
42
|
-
getAccessToken: vi.fn(()=>'cached-token'),
|
|
43
|
-
hasValidTokens: vi.fn(()=>false)
|
|
44
|
-
}))
|
|
45
|
-
}));
|
|
46
|
-
vi.mock('./login.js', ()=>({
|
|
47
|
-
loginCommand: vi.fn().mockResolvedValue(undefined)
|
|
48
|
-
}));
|
|
49
|
-
vi.mock('../utils/log.js', ()=>({
|
|
50
|
-
debug: vi.fn(),
|
|
51
|
-
error: vi.fn(),
|
|
52
|
-
info: vi.fn(),
|
|
53
|
-
log: vi.fn(),
|
|
54
|
-
warning: vi.fn()
|
|
55
|
-
}));
|
|
56
|
-
// Mock file system operations
|
|
57
|
-
vi.mock('../utils/config.js', async ()=>{
|
|
58
|
-
const actual = await vi.importActual('../utils/config.js');
|
|
59
|
-
return {
|
|
60
|
-
...actual,
|
|
61
|
-
hasFigmaConfig: vi.fn(),
|
|
62
|
-
readFigmaConfig: vi.fn(),
|
|
63
|
-
writeFigmaConfig: vi.fn()
|
|
64
|
-
};
|
|
65
|
-
});
|
|
66
|
-
vi.mock('../utils/project.js', async ()=>{
|
|
67
|
-
const actual = await vi.importActual('../utils/project.js');
|
|
68
|
-
return {
|
|
69
|
-
...actual,
|
|
70
|
-
detectPayloadProject: vi.fn(),
|
|
71
|
-
hasRequiredDependencies: vi.fn(),
|
|
72
|
-
installDependencies: vi.fn(),
|
|
73
|
-
isInProjectDirectory: vi.fn(),
|
|
74
|
-
scaffoldProject: vi.fn()
|
|
75
|
-
};
|
|
76
|
-
});
|
|
77
|
-
vi.mock('../api/control-plane.js', ()=>({
|
|
78
|
-
createTenant: vi.fn(),
|
|
79
|
-
getTenantDetails: vi.fn(),
|
|
80
|
-
listTenants: vi.fn()
|
|
81
|
-
}));
|
|
82
|
-
vi.mock('../utils/payload-config-modifier.js', ()=>({
|
|
83
|
-
displayManualInstructions: vi.fn(),
|
|
84
|
-
ensurePayloadFigmaConfig: vi.fn()
|
|
85
|
-
}));
|
|
86
|
-
describe('init command', ()=>{
|
|
87
|
-
let processExitMock;
|
|
88
|
-
let testDir;
|
|
89
|
-
beforeEach(async ()=>{
|
|
90
|
-
vi.clearAllMocks();
|
|
91
|
-
processExitMock = mockProcessExit();
|
|
92
|
-
// Create temp test directory
|
|
93
|
-
testDir = path.join(process.cwd(), '.test-tmp', `init-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`);
|
|
94
|
-
await fs.mkdir(testDir, {
|
|
95
|
-
recursive: true
|
|
96
|
-
});
|
|
97
|
-
// Default mocks
|
|
98
|
-
vi.mocked(config.writeFigmaConfig).mockResolvedValue();
|
|
99
|
-
vi.mocked(project.isInProjectDirectory).mockResolvedValue(true); // Default: existing project
|
|
100
|
-
vi.mocked(project.hasRequiredDependencies).mockResolvedValue(true); // Default: deps installed
|
|
101
|
-
vi.mocked(payloadConfigModifier.ensurePayloadFigmaConfig).mockResolvedValue({
|
|
102
|
-
changes: [],
|
|
103
|
-
modified: false,
|
|
104
|
-
success: true
|
|
105
|
-
});
|
|
106
|
-
});
|
|
107
|
-
afterEach(async ()=>{
|
|
108
|
-
processExitMock.restore();
|
|
109
|
-
// Clean up test directory
|
|
110
|
-
try {
|
|
111
|
-
await fs.rm(testDir, {
|
|
112
|
-
force: true,
|
|
113
|
-
recursive: true
|
|
114
|
-
});
|
|
115
|
-
} catch {
|
|
116
|
-
// Ignore cleanup errors
|
|
117
|
-
}
|
|
118
|
-
});
|
|
119
|
-
describe('authentication check', ()=>{
|
|
120
|
-
it('should skip auth when --skip-auth flag is used', async ()=>{
|
|
121
|
-
vi.mocked(config.hasFigmaConfig).mockResolvedValue(false);
|
|
122
|
-
vi.mocked(project.detectPayloadProject).mockResolvedValue({
|
|
123
|
-
hasPayload: true,
|
|
124
|
-
path: testDir,
|
|
125
|
-
payloadVersion: '^3.54.0'
|
|
126
|
-
});
|
|
127
|
-
vi.mocked(controlPlane.getTenantDetails).mockResolvedValue({
|
|
128
|
-
id: 'tenant_test',
|
|
129
|
-
domain: 'test.figmacms.com',
|
|
130
|
-
parentId: 'team_123',
|
|
131
|
-
parentType: 'team',
|
|
132
|
-
status: 'active'
|
|
133
|
-
});
|
|
134
|
-
await initCommand({
|
|
135
|
-
id: 'tenant_test',
|
|
136
|
-
skipAuth: true
|
|
137
|
-
});
|
|
138
|
-
expect(getValidAccessToken).not.toHaveBeenCalled();
|
|
139
|
-
});
|
|
140
|
-
it('should prompt and authenticate when user confirms', async ()=>{
|
|
141
|
-
// First call returns null (not authenticated), second call returns valid token (after auth)
|
|
142
|
-
vi.mocked(getValidAccessToken).mockResolvedValueOnce(null).mockResolvedValueOnce('valid-token');
|
|
143
|
-
vi.mocked(p.confirm).mockResolvedValue(true);
|
|
144
|
-
vi.mocked(config.hasFigmaConfig).mockResolvedValue(false);
|
|
145
|
-
vi.mocked(project.detectPayloadProject).mockResolvedValue({
|
|
146
|
-
hasPayload: true,
|
|
147
|
-
path: testDir,
|
|
148
|
-
payloadVersion: '^3.54.0'
|
|
149
|
-
});
|
|
150
|
-
vi.mocked(controlPlane.getTenantDetails).mockResolvedValue({
|
|
151
|
-
id: 'tenant_test',
|
|
152
|
-
domain: 'test.figmacms.com',
|
|
153
|
-
parentId: 'team_123',
|
|
154
|
-
parentType: 'team',
|
|
155
|
-
status: 'active'
|
|
156
|
-
});
|
|
157
|
-
await initCommand({
|
|
158
|
-
id: 'tenant_test'
|
|
159
|
-
});
|
|
160
|
-
expect(p.confirm).toHaveBeenCalledWith(expect.objectContaining({
|
|
161
|
-
message: 'Would you like to authenticate now?'
|
|
162
|
-
}));
|
|
163
|
-
// Verify loginCommand was called
|
|
164
|
-
const { loginCommand } = await import('./login.js');
|
|
165
|
-
expect(loginCommand).toHaveBeenCalled();
|
|
166
|
-
});
|
|
167
|
-
});
|
|
168
|
-
describe('already initialized check', ()=>{
|
|
169
|
-
it('should exit if already initialized', async ()=>{
|
|
170
|
-
vi.mocked(config.hasFigmaConfig).mockResolvedValue(true);
|
|
171
|
-
vi.mocked(config.readFigmaConfig).mockResolvedValue({
|
|
172
|
-
domain: 'existing.figmacms.com',
|
|
173
|
-
tenantId: 'tenant_existing'
|
|
174
|
-
});
|
|
175
|
-
await expect(initCommand({
|
|
176
|
-
id: 'tenant_test',
|
|
177
|
-
skipAuth: true
|
|
178
|
-
})).rejects.toThrow('process.exit(0)');
|
|
179
|
-
expect(processExitMock.exitMock).toHaveBeenCalledWith(0);
|
|
180
|
-
});
|
|
181
|
-
it('should proceed if --force flag is used', async ()=>{
|
|
182
|
-
vi.mocked(config.hasFigmaConfig).mockResolvedValue(true);
|
|
183
|
-
vi.mocked(project.detectPayloadProject).mockResolvedValue({
|
|
184
|
-
hasPayload: true,
|
|
185
|
-
path: testDir,
|
|
186
|
-
payloadVersion: '^3.54.0'
|
|
187
|
-
});
|
|
188
|
-
vi.mocked(controlPlane.getTenantDetails).mockResolvedValue({
|
|
189
|
-
id: 'tenant_new',
|
|
190
|
-
domain: 'test-cms.figmacms.com',
|
|
191
|
-
parentId: 'team_123',
|
|
192
|
-
parentType: 'team',
|
|
193
|
-
status: 'active'
|
|
194
|
-
});
|
|
195
|
-
await initCommand({
|
|
196
|
-
id: 'tenant_new',
|
|
197
|
-
force: true,
|
|
198
|
-
skipAuth: true
|
|
199
|
-
});
|
|
200
|
-
expect(config.readFigmaConfig).not.toHaveBeenCalled();
|
|
201
|
-
expect(controlPlane.getTenantDetails).toHaveBeenCalled();
|
|
202
|
-
});
|
|
203
|
-
});
|
|
204
|
-
describe('project validation', ()=>{
|
|
205
|
-
it('should reject invalid Payload version', async ()=>{
|
|
206
|
-
vi.mocked(config.hasFigmaConfig).mockResolvedValue(false);
|
|
207
|
-
vi.mocked(project.detectPayloadProject).mockResolvedValue({
|
|
208
|
-
hasPayload: true,
|
|
209
|
-
path: testDir,
|
|
210
|
-
payloadVersion: '^2.0.0'
|
|
211
|
-
});
|
|
212
|
-
await expect(initCommand({
|
|
213
|
-
id: 'tenant_test',
|
|
214
|
-
skipAuth: true
|
|
215
|
-
})).rejects.toThrow('process.exit(1)');
|
|
216
|
-
expect(processExitMock.exitMock).toHaveBeenCalledWith(1);
|
|
217
|
-
});
|
|
218
|
-
it('should exit if user declines to scaffold project', async ()=>{
|
|
219
|
-
vi.mocked(config.hasFigmaConfig).mockResolvedValue(false);
|
|
220
|
-
vi.mocked(project.detectPayloadProject).mockResolvedValue({
|
|
221
|
-
hasPayload: false,
|
|
222
|
-
path: testDir
|
|
223
|
-
});
|
|
224
|
-
vi.mocked(p.confirm).mockResolvedValue(false);
|
|
225
|
-
await expect(initCommand({
|
|
226
|
-
id: 'tenant_test',
|
|
227
|
-
skipAuth: true
|
|
228
|
-
})).rejects.toThrow('process.exit(1)');
|
|
229
|
-
expect(processExitMock.exitMock).toHaveBeenCalledWith(1);
|
|
230
|
-
});
|
|
231
|
-
});
|
|
232
|
-
describe('tenant configuration', ()=>{
|
|
233
|
-
it('should fetch tenant details and write config', async ()=>{
|
|
234
|
-
vi.mocked(config.hasFigmaConfig).mockResolvedValue(false);
|
|
235
|
-
vi.mocked(project.detectPayloadProject).mockResolvedValue({
|
|
236
|
-
hasPayload: true,
|
|
237
|
-
path: testDir,
|
|
238
|
-
payloadVersion: '^3.54.0'
|
|
239
|
-
});
|
|
240
|
-
vi.mocked(controlPlane.getTenantDetails).mockResolvedValue({
|
|
241
|
-
id: 'tenant_abc',
|
|
242
|
-
domain: 'abc.figmacms.com',
|
|
243
|
-
parentId: 'team_123',
|
|
244
|
-
parentType: 'team',
|
|
245
|
-
status: 'active'
|
|
246
|
-
});
|
|
247
|
-
await initCommand({
|
|
248
|
-
id: 'tenant_abc',
|
|
249
|
-
skipAuth: true
|
|
250
|
-
});
|
|
251
|
-
expect(controlPlane.getTenantDetails).toHaveBeenCalledWith('mock-access-token', 'tenant_abc');
|
|
252
|
-
expect(config.writeFigmaConfig).toHaveBeenCalledWith({
|
|
253
|
-
domain: 'abc.figmacms.com',
|
|
254
|
-
tenantId: 'tenant_abc'
|
|
255
|
-
});
|
|
256
|
-
});
|
|
257
|
-
});
|
|
258
|
-
describe('Lambda setup verification', ()=>{
|
|
259
|
-
it('should verify scaffoldProject creates Lambda-ready files', async ()=>{
|
|
260
|
-
// This test verifies the integration between scaffoldProject and Lambda modifications
|
|
261
|
-
// by checking that the mocked scaffoldProject was called correctly
|
|
262
|
-
vi.mocked(config.hasFigmaConfig).mockResolvedValue(false);
|
|
263
|
-
vi.mocked(project.isInProjectDirectory).mockResolvedValue(false); // Trigger new project flow
|
|
264
|
-
vi.mocked(p.text).mockResolvedValue('test-project'); // Project path prompt
|
|
265
|
-
vi.mocked(controlPlane.getTenantDetails).mockResolvedValue({
|
|
266
|
-
id: 'tenant_test',
|
|
267
|
-
domain: 'test.figmacms.com',
|
|
268
|
-
parentId: 'team_123',
|
|
269
|
-
parentType: 'team',
|
|
270
|
-
status: 'active'
|
|
271
|
-
});
|
|
272
|
-
await initCommand({
|
|
273
|
-
id: 'tenant_test',
|
|
274
|
-
skipAuth: true
|
|
275
|
-
});
|
|
276
|
-
// Verify scaffoldProject was called (which internally applies Lambda modifications)
|
|
277
|
-
expect(project.scaffoldProject).toHaveBeenCalled();
|
|
278
|
-
expect(project.installDependencies).toHaveBeenCalled();
|
|
279
|
-
});
|
|
280
|
-
});
|
|
281
|
-
});
|
|
282
|
-
|
|
283
|
-
//# sourceMappingURL=init.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/commands/init.spec.ts"],"sourcesContent":["import * as p from '@clack/prompts'\nimport fs from 'fs/promises'\nimport path from 'path'\nimport { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'\n\nimport * as controlPlane from '../api/control-plane.js'\nimport { getValidAccessToken } from '../auth/oauth-flow.js'\nimport * as config from '../utils/config.js'\nimport * as payloadConfigModifier from '../utils/payload-config-modifier.js'\nimport * as project from '../utils/project.js'\nimport { mockProcessExit } from './__tests__/test-utils.js'\nimport { initCommand } from './init.js'\n\n// Mock dependencies\nvi.mock('@clack/prompts', () => {\n const mockLog = {\n error: vi.fn(),\n info: vi.fn(),\n step: vi.fn(),\n success: vi.fn(),\n warn: vi.fn(),\n }\n\n return {\n cancel: vi.fn(),\n confirm: vi.fn(),\n intro: vi.fn(),\n isCancel: vi.fn((value) => value === Symbol.for('clack.cancel')),\n log: mockLog,\n note: vi.fn(),\n outro: vi.fn(),\n select: vi.fn(),\n spinner: vi.fn(() => ({\n start: vi.fn(),\n stop: vi.fn(),\n })),\n text: vi.fn(),\n }\n})\n\nvi.mock('../auth/oauth-flow.js', () => ({\n getValidAccessToken: vi.fn(),\n}))\n\nvi.mock('../auth/token-store.js', () => ({\n TokenStore: vi.fn(() => ({\n getAccessToken: vi.fn(() => 'cached-token'),\n hasValidTokens: vi.fn(() => false),\n })),\n}))\n\nvi.mock('./login.js', () => ({\n loginCommand: vi.fn().mockResolvedValue(undefined),\n}))\n\nvi.mock('../utils/log.js', () => ({\n debug: vi.fn(),\n error: vi.fn(),\n info: vi.fn(),\n log: vi.fn(),\n warning: vi.fn(),\n}))\n\n// Mock file system operations\nvi.mock('../utils/config.js', async () => {\n const actual = await vi.importActual<typeof config>('../utils/config.js')\n return {\n ...actual,\n hasFigmaConfig: vi.fn(),\n readFigmaConfig: vi.fn(),\n writeFigmaConfig: vi.fn(),\n }\n})\n\nvi.mock('../utils/project.js', async () => {\n const actual = await vi.importActual<typeof project>('../utils/project.js')\n return {\n ...actual,\n detectPayloadProject: vi.fn(),\n hasRequiredDependencies: vi.fn(),\n installDependencies: vi.fn(),\n isInProjectDirectory: vi.fn(),\n scaffoldProject: vi.fn(),\n }\n})\n\nvi.mock('../api/control-plane.js', () => ({\n createTenant: vi.fn(),\n getTenantDetails: vi.fn(),\n listTenants: vi.fn(),\n}))\n\nvi.mock('../utils/payload-config-modifier.js', () => ({\n displayManualInstructions: vi.fn(),\n ensurePayloadFigmaConfig: vi.fn(),\n}))\n\ndescribe('init command', () => {\n let processExitMock: ReturnType<typeof mockProcessExit>\n let testDir: string\n\n beforeEach(async () => {\n vi.clearAllMocks()\n processExitMock = mockProcessExit()\n\n // Create temp test directory\n testDir = path.join(\n process.cwd(),\n '.test-tmp',\n `init-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n )\n await fs.mkdir(testDir, { recursive: true })\n\n // Default mocks\n vi.mocked(config.writeFigmaConfig).mockResolvedValue()\n vi.mocked(project.isInProjectDirectory).mockResolvedValue(true) // Default: existing project\n vi.mocked(project.hasRequiredDependencies).mockResolvedValue(true) // Default: deps installed\n vi.mocked(payloadConfigModifier.ensurePayloadFigmaConfig).mockResolvedValue({\n changes: [],\n modified: false,\n success: true,\n })\n })\n\n afterEach(async () => {\n processExitMock.restore()\n\n // Clean up test directory\n try {\n await fs.rm(testDir, { force: true, recursive: true })\n } catch {\n // Ignore cleanup errors\n }\n })\n\n describe('authentication check', () => {\n it('should skip auth when --skip-auth flag is used', async () => {\n vi.mocked(config.hasFigmaConfig).mockResolvedValue(false)\n vi.mocked(project.detectPayloadProject).mockResolvedValue({\n hasPayload: true,\n path: testDir,\n payloadVersion: '^3.54.0',\n })\n vi.mocked(controlPlane.getTenantDetails).mockResolvedValue({\n id: 'tenant_test',\n domain: 'test.figmacms.com',\n parentId: 'team_123',\n parentType: 'team',\n status: 'active',\n })\n await initCommand({ id: 'tenant_test', skipAuth: true })\n\n expect(getValidAccessToken).not.toHaveBeenCalled()\n })\n\n it('should prompt and authenticate when user confirms', async () => {\n // First call returns null (not authenticated), second call returns valid token (after auth)\n vi.mocked(getValidAccessToken)\n .mockResolvedValueOnce(null)\n .mockResolvedValueOnce('valid-token')\n vi.mocked(p.confirm).mockResolvedValue(true)\n vi.mocked(config.hasFigmaConfig).mockResolvedValue(false)\n vi.mocked(project.detectPayloadProject).mockResolvedValue({\n hasPayload: true,\n path: testDir,\n payloadVersion: '^3.54.0',\n })\n vi.mocked(controlPlane.getTenantDetails).mockResolvedValue({\n id: 'tenant_test',\n domain: 'test.figmacms.com',\n parentId: 'team_123',\n parentType: 'team',\n status: 'active',\n })\n\n await initCommand({ id: 'tenant_test' })\n\n expect(p.confirm).toHaveBeenCalledWith(\n expect.objectContaining({\n message: 'Would you like to authenticate now?',\n }),\n )\n // Verify loginCommand was called\n const { loginCommand } = await import('./login.js')\n expect(loginCommand).toHaveBeenCalled()\n })\n })\n\n describe('already initialized check', () => {\n it('should exit if already initialized', async () => {\n vi.mocked(config.hasFigmaConfig).mockResolvedValue(true)\n vi.mocked(config.readFigmaConfig).mockResolvedValue({\n domain: 'existing.figmacms.com',\n tenantId: 'tenant_existing',\n })\n\n await expect(initCommand({ id: 'tenant_test', skipAuth: true })).rejects.toThrow(\n 'process.exit(0)',\n )\n\n expect(processExitMock.exitMock).toHaveBeenCalledWith(0)\n })\n\n it('should proceed if --force flag is used', async () => {\n vi.mocked(config.hasFigmaConfig).mockResolvedValue(true)\n vi.mocked(project.detectPayloadProject).mockResolvedValue({\n hasPayload: true,\n path: testDir,\n payloadVersion: '^3.54.0',\n })\n vi.mocked(controlPlane.getTenantDetails).mockResolvedValue({\n id: 'tenant_new',\n domain: 'test-cms.figmacms.com',\n parentId: 'team_123',\n parentType: 'team',\n status: 'active',\n })\n\n await initCommand({ id: 'tenant_new', force: true, skipAuth: true })\n\n expect(config.readFigmaConfig).not.toHaveBeenCalled()\n expect(controlPlane.getTenantDetails).toHaveBeenCalled()\n })\n })\n\n describe('project validation', () => {\n it('should reject invalid Payload version', async () => {\n vi.mocked(config.hasFigmaConfig).mockResolvedValue(false)\n vi.mocked(project.detectPayloadProject).mockResolvedValue({\n hasPayload: true,\n path: testDir,\n payloadVersion: '^2.0.0',\n })\n\n await expect(initCommand({ id: 'tenant_test', skipAuth: true })).rejects.toThrow(\n 'process.exit(1)',\n )\n\n expect(processExitMock.exitMock).toHaveBeenCalledWith(1)\n })\n\n it('should exit if user declines to scaffold project', async () => {\n vi.mocked(config.hasFigmaConfig).mockResolvedValue(false)\n vi.mocked(project.detectPayloadProject).mockResolvedValue({\n hasPayload: false,\n path: testDir,\n })\n vi.mocked(p.confirm).mockResolvedValue(false)\n\n await expect(initCommand({ id: 'tenant_test', skipAuth: true })).rejects.toThrow(\n 'process.exit(1)',\n )\n\n expect(processExitMock.exitMock).toHaveBeenCalledWith(1)\n })\n })\n\n describe('tenant configuration', () => {\n it('should fetch tenant details and write config', async () => {\n vi.mocked(config.hasFigmaConfig).mockResolvedValue(false)\n vi.mocked(project.detectPayloadProject).mockResolvedValue({\n hasPayload: true,\n path: testDir,\n payloadVersion: '^3.54.0',\n })\n vi.mocked(controlPlane.getTenantDetails).mockResolvedValue({\n id: 'tenant_abc',\n domain: 'abc.figmacms.com',\n parentId: 'team_123',\n parentType: 'team',\n status: 'active',\n })\n\n await initCommand({ id: 'tenant_abc', skipAuth: true })\n\n expect(controlPlane.getTenantDetails).toHaveBeenCalledWith('mock-access-token', 'tenant_abc')\n expect(config.writeFigmaConfig).toHaveBeenCalledWith({\n domain: 'abc.figmacms.com',\n tenantId: 'tenant_abc',\n })\n })\n })\n\n describe('Lambda setup verification', () => {\n it('should verify scaffoldProject creates Lambda-ready files', async () => {\n // This test verifies the integration between scaffoldProject and Lambda modifications\n // by checking that the mocked scaffoldProject was called correctly\n vi.mocked(config.hasFigmaConfig).mockResolvedValue(false)\n vi.mocked(project.isInProjectDirectory).mockResolvedValue(false) // Trigger new project flow\n vi.mocked(p.text).mockResolvedValue('test-project') // Project path prompt\n vi.mocked(controlPlane.getTenantDetails).mockResolvedValue({\n id: 'tenant_test',\n domain: 'test.figmacms.com',\n parentId: 'team_123',\n parentType: 'team',\n status: 'active',\n })\n\n await initCommand({ id: 'tenant_test', skipAuth: true })\n\n // Verify scaffoldProject was called (which internally applies Lambda modifications)\n expect(project.scaffoldProject).toHaveBeenCalled()\n expect(project.installDependencies).toHaveBeenCalled()\n })\n })\n})\n"],"names":["p","fs","path","afterEach","beforeEach","describe","expect","it","vi","controlPlane","getValidAccessToken","config","payloadConfigModifier","project","mockProcessExit","initCommand","mock","mockLog","error","fn","info","step","success","warn","cancel","confirm","intro","isCancel","value","Symbol","for","log","note","outro","select","spinner","start","stop","text","TokenStore","getAccessToken","hasValidTokens","loginCommand","mockResolvedValue","undefined","debug","warning","actual","importActual","hasFigmaConfig","readFigmaConfig","writeFigmaConfig","detectPayloadProject","hasRequiredDependencies","installDependencies","isInProjectDirectory","scaffoldProject","createTenant","getTenantDetails","listTenants","displayManualInstructions","ensurePayloadFigmaConfig","processExitMock","testDir","clearAllMocks","join","process","cwd","Date","now","Math","random","toString","substring","mkdir","recursive","mocked","changes","modified","restore","rm","force","hasPayload","payloadVersion","id","domain","parentId","parentType","status","skipAuth","not","toHaveBeenCalled","mockResolvedValueOnce","toHaveBeenCalledWith","objectContaining","message","tenantId","rejects","toThrow","exitMock"],"mappings":"AAAA,YAAYA,OAAO,iBAAgB;AACnC,OAAOC,QAAQ,cAAa;AAC5B,OAAOC,UAAU,OAAM;AACvB,SAASC,SAAS,EAAEC,UAAU,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,EAAEC,EAAE,QAAQ,SAAQ;AAExE,YAAYC,kBAAkB,0BAAyB;AACvD,SAASC,mBAAmB,QAAQ,wBAAuB;AAC3D,YAAYC,YAAY,qBAAoB;AAC5C,YAAYC,2BAA2B,sCAAqC;AAC5E,YAAYC,aAAa,sBAAqB;AAC9C,SAASC,eAAe,QAAQ,4BAA2B;AAC3D,SAASC,WAAW,QAAQ,YAAW;AAEvC,oBAAoB;AACpBP,GAAGQ,IAAI,CAAC,kBAAkB;IACxB,MAAMC,UAAU;QACdC,OAAOV,GAAGW,EAAE;QACZC,MAAMZ,GAAGW,EAAE;QACXE,MAAMb,GAAGW,EAAE;QACXG,SAASd,GAAGW,EAAE;QACdI,MAAMf,GAAGW,EAAE;IACb;IAEA,OAAO;QACLK,QAAQhB,GAAGW,EAAE;QACbM,SAASjB,GAAGW,EAAE;QACdO,OAAOlB,GAAGW,EAAE;QACZQ,UAAUnB,GAAGW,EAAE,CAAC,CAACS,QAAUA,UAAUC,OAAOC,GAAG,CAAC;QAChDC,KAAKd;QACLe,MAAMxB,GAAGW,EAAE;QACXc,OAAOzB,GAAGW,EAAE;QACZe,QAAQ1B,GAAGW,EAAE;QACbgB,SAAS3B,GAAGW,EAAE,CAAC,IAAO,CAAA;gBACpBiB,OAAO5B,GAAGW,EAAE;gBACZkB,MAAM7B,GAAGW,EAAE;YACb,CAAA;QACAmB,MAAM9B,GAAGW,EAAE;IACb;AACF;AAEAX,GAAGQ,IAAI,CAAC,yBAAyB,IAAO,CAAA;QACtCN,qBAAqBF,GAAGW,EAAE;IAC5B,CAAA;AAEAX,GAAGQ,IAAI,CAAC,0BAA0B,IAAO,CAAA;QACvCuB,YAAY/B,GAAGW,EAAE,CAAC,IAAO,CAAA;gBACvBqB,gBAAgBhC,GAAGW,EAAE,CAAC,IAAM;gBAC5BsB,gBAAgBjC,GAAGW,EAAE,CAAC,IAAM;YAC9B,CAAA;IACF,CAAA;AAEAX,GAAGQ,IAAI,CAAC,cAAc,IAAO,CAAA;QAC3B0B,cAAclC,GAAGW,EAAE,GAAGwB,iBAAiB,CAACC;IAC1C,CAAA;AAEApC,GAAGQ,IAAI,CAAC,mBAAmB,IAAO,CAAA;QAChC6B,OAAOrC,GAAGW,EAAE;QACZD,OAAOV,GAAGW,EAAE;QACZC,MAAMZ,GAAGW,EAAE;QACXY,KAAKvB,GAAGW,EAAE;QACV2B,SAAStC,GAAGW,EAAE;IAChB,CAAA;AAEA,8BAA8B;AAC9BX,GAAGQ,IAAI,CAAC,sBAAsB;IAC5B,MAAM+B,SAAS,MAAMvC,GAAGwC,YAAY,CAAgB;IACpD,OAAO;QACL,GAAGD,MAAM;QACTE,gBAAgBzC,GAAGW,EAAE;QACrB+B,iBAAiB1C,GAAGW,EAAE;QACtBgC,kBAAkB3C,GAAGW,EAAE;IACzB;AACF;AAEAX,GAAGQ,IAAI,CAAC,uBAAuB;IAC7B,MAAM+B,SAAS,MAAMvC,GAAGwC,YAAY,CAAiB;IACrD,OAAO;QACL,GAAGD,MAAM;QACTK,sBAAsB5C,GAAGW,EAAE;QAC3BkC,yBAAyB7C,GAAGW,EAAE;QAC9BmC,qBAAqB9C,GAAGW,EAAE;QAC1BoC,sBAAsB/C,GAAGW,EAAE;QAC3BqC,iBAAiBhD,GAAGW,EAAE;IACxB;AACF;AAEAX,GAAGQ,IAAI,CAAC,2BAA2B,IAAO,CAAA;QACxCyC,cAAcjD,GAAGW,EAAE;QACnBuC,kBAAkBlD,GAAGW,EAAE;QACvBwC,aAAanD,GAAGW,EAAE;IACpB,CAAA;AAEAX,GAAGQ,IAAI,CAAC,uCAAuC,IAAO,CAAA;QACpD4C,2BAA2BpD,GAAGW,EAAE;QAChC0C,0BAA0BrD,GAAGW,EAAE;IACjC,CAAA;AAEAd,SAAS,gBAAgB;IACvB,IAAIyD;IACJ,IAAIC;IAEJ3D,WAAW;QACTI,GAAGwD,aAAa;QAChBF,kBAAkBhD;QAElB,6BAA6B;QAC7BiD,UAAU7D,KAAK+D,IAAI,CACjBC,QAAQC,GAAG,IACX,aACA,CAAC,KAAK,EAAEC,KAAKC,GAAG,GAAG,CAAC,EAAEC,KAAKC,MAAM,GAAGC,QAAQ,CAAC,IAAIC,SAAS,CAAC,GAAG,IAAI;QAEpE,MAAMxE,GAAGyE,KAAK,CAACX,SAAS;YAAEY,WAAW;QAAK;QAE1C,gBAAgB;QAChBnE,GAAGoE,MAAM,CAACjE,OAAOwC,gBAAgB,EAAER,iBAAiB;QACpDnC,GAAGoE,MAAM,CAAC/D,QAAQ0C,oBAAoB,EAAEZ,iBAAiB,CAAC,OAAM,4BAA4B;QAC5FnC,GAAGoE,MAAM,CAAC/D,QAAQwC,uBAAuB,EAAEV,iBAAiB,CAAC,OAAM,0BAA0B;QAC7FnC,GAAGoE,MAAM,CAAChE,sBAAsBiD,wBAAwB,EAAElB,iBAAiB,CAAC;YAC1EkC,SAAS,EAAE;YACXC,UAAU;YACVxD,SAAS;QACX;IACF;IAEAnB,UAAU;QACR2D,gBAAgBiB,OAAO;QAEvB,0BAA0B;QAC1B,IAAI;YACF,MAAM9E,GAAG+E,EAAE,CAACjB,SAAS;gBAAEkB,OAAO;gBAAMN,WAAW;YAAK;QACtD,EAAE,OAAM;QACN,wBAAwB;QAC1B;IACF;IAEAtE,SAAS,wBAAwB;QAC/BE,GAAG,kDAAkD;YACnDC,GAAGoE,MAAM,CAACjE,OAAOsC,cAAc,EAAEN,iBAAiB,CAAC;YACnDnC,GAAGoE,MAAM,CAAC/D,QAAQuC,oBAAoB,EAAET,iBAAiB,CAAC;gBACxDuC,YAAY;gBACZhF,MAAM6D;gBACNoB,gBAAgB;YAClB;YACA3E,GAAGoE,MAAM,CAACnE,aAAaiD,gBAAgB,EAAEf,iBAAiB,CAAC;gBACzDyC,IAAI;gBACJC,QAAQ;gBACRC,UAAU;gBACVC,YAAY;gBACZC,QAAQ;YACV;YACA,MAAMzE,YAAY;gBAAEqE,IAAI;gBAAeK,UAAU;YAAK;YAEtDnF,OAAOI,qBAAqBgF,GAAG,CAACC,gBAAgB;QAClD;QAEApF,GAAG,qDAAqD;YACtD,4FAA4F;YAC5FC,GAAGoE,MAAM,CAAClE,qBACPkF,qBAAqB,CAAC,MACtBA,qBAAqB,CAAC;YACzBpF,GAAGoE,MAAM,CAAC5E,EAAEyB,OAAO,EAAEkB,iBAAiB,CAAC;YACvCnC,GAAGoE,MAAM,CAACjE,OAAOsC,cAAc,EAAEN,iBAAiB,CAAC;YACnDnC,GAAGoE,MAAM,CAAC/D,QAAQuC,oBAAoB,EAAET,iBAAiB,CAAC;gBACxDuC,YAAY;gBACZhF,MAAM6D;gBACNoB,gBAAgB;YAClB;YACA3E,GAAGoE,MAAM,CAACnE,aAAaiD,gBAAgB,EAAEf,iBAAiB,CAAC;gBACzDyC,IAAI;gBACJC,QAAQ;gBACRC,UAAU;gBACVC,YAAY;gBACZC,QAAQ;YACV;YAEA,MAAMzE,YAAY;gBAAEqE,IAAI;YAAc;YAEtC9E,OAAON,EAAEyB,OAAO,EAAEoE,oBAAoB,CACpCvF,OAAOwF,gBAAgB,CAAC;gBACtBC,SAAS;YACX;YAEF,iCAAiC;YACjC,MAAM,EAAErD,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC;YACtCpC,OAAOoC,cAAciD,gBAAgB;QACvC;IACF;IAEAtF,SAAS,6BAA6B;QACpCE,GAAG,sCAAsC;YACvCC,GAAGoE,MAAM,CAACjE,OAAOsC,cAAc,EAAEN,iBAAiB,CAAC;YACnDnC,GAAGoE,MAAM,CAACjE,OAAOuC,eAAe,EAAEP,iBAAiB,CAAC;gBAClD0C,QAAQ;gBACRW,UAAU;YACZ;YAEA,MAAM1F,OAAOS,YAAY;gBAAEqE,IAAI;gBAAeK,UAAU;YAAK,IAAIQ,OAAO,CAACC,OAAO,CAC9E;YAGF5F,OAAOwD,gBAAgBqC,QAAQ,EAAEN,oBAAoB,CAAC;QACxD;QAEAtF,GAAG,0CAA0C;YAC3CC,GAAGoE,MAAM,CAACjE,OAAOsC,cAAc,EAAEN,iBAAiB,CAAC;YACnDnC,GAAGoE,MAAM,CAAC/D,QAAQuC,oBAAoB,EAAET,iBAAiB,CAAC;gBACxDuC,YAAY;gBACZhF,MAAM6D;gBACNoB,gBAAgB;YAClB;YACA3E,GAAGoE,MAAM,CAACnE,aAAaiD,gBAAgB,EAAEf,iBAAiB,CAAC;gBACzDyC,IAAI;gBACJC,QAAQ;gBACRC,UAAU;gBACVC,YAAY;gBACZC,QAAQ;YACV;YAEA,MAAMzE,YAAY;gBAAEqE,IAAI;gBAAcH,OAAO;gBAAMQ,UAAU;YAAK;YAElEnF,OAAOK,OAAOuC,eAAe,EAAEwC,GAAG,CAACC,gBAAgB;YACnDrF,OAAOG,aAAaiD,gBAAgB,EAAEiC,gBAAgB;QACxD;IACF;IAEAtF,SAAS,sBAAsB;QAC7BE,GAAG,yCAAyC;YAC1CC,GAAGoE,MAAM,CAACjE,OAAOsC,cAAc,EAAEN,iBAAiB,CAAC;YACnDnC,GAAGoE,MAAM,CAAC/D,QAAQuC,oBAAoB,EAAET,iBAAiB,CAAC;gBACxDuC,YAAY;gBACZhF,MAAM6D;gBACNoB,gBAAgB;YAClB;YAEA,MAAM7E,OAAOS,YAAY;gBAAEqE,IAAI;gBAAeK,UAAU;YAAK,IAAIQ,OAAO,CAACC,OAAO,CAC9E;YAGF5F,OAAOwD,gBAAgBqC,QAAQ,EAAEN,oBAAoB,CAAC;QACxD;QAEAtF,GAAG,oDAAoD;YACrDC,GAAGoE,MAAM,CAACjE,OAAOsC,cAAc,EAAEN,iBAAiB,CAAC;YACnDnC,GAAGoE,MAAM,CAAC/D,QAAQuC,oBAAoB,EAAET,iBAAiB,CAAC;gBACxDuC,YAAY;gBACZhF,MAAM6D;YACR;YACAvD,GAAGoE,MAAM,CAAC5E,EAAEyB,OAAO,EAAEkB,iBAAiB,CAAC;YAEvC,MAAMrC,OAAOS,YAAY;gBAAEqE,IAAI;gBAAeK,UAAU;YAAK,IAAIQ,OAAO,CAACC,OAAO,CAC9E;YAGF5F,OAAOwD,gBAAgBqC,QAAQ,EAAEN,oBAAoB,CAAC;QACxD;IACF;IAEAxF,SAAS,wBAAwB;QAC/BE,GAAG,gDAAgD;YACjDC,GAAGoE,MAAM,CAACjE,OAAOsC,cAAc,EAAEN,iBAAiB,CAAC;YACnDnC,GAAGoE,MAAM,CAAC/D,QAAQuC,oBAAoB,EAAET,iBAAiB,CAAC;gBACxDuC,YAAY;gBACZhF,MAAM6D;gBACNoB,gBAAgB;YAClB;YACA3E,GAAGoE,MAAM,CAACnE,aAAaiD,gBAAgB,EAAEf,iBAAiB,CAAC;gBACzDyC,IAAI;gBACJC,QAAQ;gBACRC,UAAU;gBACVC,YAAY;gBACZC,QAAQ;YACV;YAEA,MAAMzE,YAAY;gBAAEqE,IAAI;gBAAcK,UAAU;YAAK;YAErDnF,OAAOG,aAAaiD,gBAAgB,EAAEmC,oBAAoB,CAAC,qBAAqB;YAChFvF,OAAOK,OAAOwC,gBAAgB,EAAE0C,oBAAoB,CAAC;gBACnDR,QAAQ;gBACRW,UAAU;YACZ;QACF;IACF;IAEA3F,SAAS,6BAA6B;QACpCE,GAAG,4DAA4D;YAC7D,sFAAsF;YACtF,mEAAmE;YACnEC,GAAGoE,MAAM,CAACjE,OAAOsC,cAAc,EAAEN,iBAAiB,CAAC;YACnDnC,GAAGoE,MAAM,CAAC/D,QAAQ0C,oBAAoB,EAAEZ,iBAAiB,CAAC,QAAO,2BAA2B;YAC5FnC,GAAGoE,MAAM,CAAC5E,EAAEsC,IAAI,EAAEK,iBAAiB,CAAC,iBAAgB,sBAAsB;YAC1EnC,GAAGoE,MAAM,CAACnE,aAAaiD,gBAAgB,EAAEf,iBAAiB,CAAC;gBACzDyC,IAAI;gBACJC,QAAQ;gBACRC,UAAU;gBACVC,YAAY;gBACZC,QAAQ;YACV;YAEA,MAAMzE,YAAY;gBAAEqE,IAAI;gBAAeK,UAAU;YAAK;YAEtD,oFAAoF;YACpFnF,OAAOO,QAAQ2C,eAAe,EAAEmC,gBAAgB;YAChDrF,OAAOO,QAAQyC,mBAAmB,EAAEqC,gBAAgB;QACtD;IACF;AACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build-config.spec.d.ts","sourceRoot":"","sources":["../../src/plugin/build-config.spec.ts"],"names":[],"mappings":""}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { lexicalEditor } from '@payloadcms/richtext-lexical';
|
|
2
|
-
import { describe, expect, it } from 'vitest';
|
|
3
|
-
import { buildConfig } from './build-config.js';
|
|
4
|
-
describe('buildConfig', ()=>{
|
|
5
|
-
it('should inject figmaContentSystem as db adapter', async ()=>{
|
|
6
|
-
const config = {
|
|
7
|
-
collections: []
|
|
8
|
-
};
|
|
9
|
-
const result = await buildConfig(config);
|
|
10
|
-
expect(result.db).toBeDefined();
|
|
11
|
-
expect(result.db.name).toBe('figma-content-system');
|
|
12
|
-
});
|
|
13
|
-
it('should inject secret', async ()=>{
|
|
14
|
-
const config = {
|
|
15
|
-
collections: []
|
|
16
|
-
};
|
|
17
|
-
const result = await buildConfig(config);
|
|
18
|
-
expect(result.secret).toBe('MY_SECRET');
|
|
19
|
-
});
|
|
20
|
-
it('should inject default lexicalEditor when no editor provided', async ()=>{
|
|
21
|
-
const config = {
|
|
22
|
-
collections: []
|
|
23
|
-
};
|
|
24
|
-
const result = await buildConfig(config);
|
|
25
|
-
expect(result.editor).toBeDefined();
|
|
26
|
-
// Lexical editor should be present
|
|
27
|
-
expect(typeof result.editor).toBe('object');
|
|
28
|
-
});
|
|
29
|
-
it('should preserve custom editor from user config', async ()=>{
|
|
30
|
-
const customEditor = lexicalEditor({
|
|
31
|
-
features: []
|
|
32
|
-
});
|
|
33
|
-
const config = {
|
|
34
|
-
collections: [],
|
|
35
|
-
editor: customEditor
|
|
36
|
-
};
|
|
37
|
-
const result = await buildConfig(config);
|
|
38
|
-
// Should accept and process the custom editor without error
|
|
39
|
-
expect(result.editor).toBeDefined();
|
|
40
|
-
expect(typeof result.editor).toBe('object');
|
|
41
|
-
// Verify it's a lexical editor (has CellComponent property)
|
|
42
|
-
expect(result.editor).toHaveProperty('CellComponent');
|
|
43
|
-
});
|
|
44
|
-
it('should preserve other user configuration', async ()=>{
|
|
45
|
-
const config = {
|
|
46
|
-
collections: [
|
|
47
|
-
{
|
|
48
|
-
slug: 'posts',
|
|
49
|
-
fields: [
|
|
50
|
-
{
|
|
51
|
-
name: 'title',
|
|
52
|
-
type: 'text'
|
|
53
|
-
}
|
|
54
|
-
]
|
|
55
|
-
}
|
|
56
|
-
],
|
|
57
|
-
globals: [
|
|
58
|
-
{
|
|
59
|
-
slug: 'settings',
|
|
60
|
-
fields: []
|
|
61
|
-
}
|
|
62
|
-
]
|
|
63
|
-
};
|
|
64
|
-
const result = await buildConfig(config);
|
|
65
|
-
// Should preserve collections and globals
|
|
66
|
-
expect(result.collections).toBeDefined();
|
|
67
|
-
expect(result.collections.length).toBeGreaterThan(0);
|
|
68
|
-
expect(result.globals).toBeDefined();
|
|
69
|
-
});
|
|
70
|
-
});
|
|
71
|
-
|
|
72
|
-
//# sourceMappingURL=build-config.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugin/build-config.spec.ts"],"sourcesContent":["import { lexicalEditor } from '@payloadcms/richtext-lexical'\nimport { describe, expect, it } from 'vitest'\n\nimport type { FigmaConfig } from './build-config.js'\n\nimport { buildConfig } from './build-config.js'\n\ndescribe('buildConfig', () => {\n it('should inject figmaContentSystem as db adapter', async () => {\n const config: FigmaConfig = { collections: [] }\n const result = await buildConfig(config)\n\n expect(result.db).toBeDefined()\n expect(result.db.name).toBe('figma-content-system')\n })\n\n it('should inject secret', async () => {\n const config: FigmaConfig = { collections: [] }\n const result = await buildConfig(config)\n\n expect(result.secret).toBe('MY_SECRET')\n })\n\n it('should inject default lexicalEditor when no editor provided', async () => {\n const config: FigmaConfig = { collections: [] }\n const result = await buildConfig(config)\n\n expect(result.editor).toBeDefined()\n // Lexical editor should be present\n expect(typeof result.editor).toBe('object')\n })\n\n it('should preserve custom editor from user config', async () => {\n const customEditor = lexicalEditor({\n features: [], // Empty features to make it distinct\n })\n\n const config: FigmaConfig = {\n collections: [],\n editor: customEditor,\n }\n\n const result = await buildConfig(config)\n\n // Should accept and process the custom editor without error\n expect(result.editor).toBeDefined()\n expect(typeof result.editor).toBe('object')\n // Verify it's a lexical editor (has CellComponent property)\n expect(result.editor).toHaveProperty('CellComponent')\n })\n\n it('should preserve other user configuration', async () => {\n const config: FigmaConfig = {\n collections: [\n {\n slug: 'posts',\n fields: [\n {\n name: 'title',\n type: 'text',\n },\n ],\n },\n ],\n globals: [\n {\n slug: 'settings',\n fields: [],\n },\n ],\n }\n\n const result = await buildConfig(config)\n\n // Should preserve collections and globals\n expect(result.collections).toBeDefined()\n expect(result.collections.length).toBeGreaterThan(0)\n expect(result.globals).toBeDefined()\n })\n})\n"],"names":["lexicalEditor","describe","expect","it","buildConfig","config","collections","result","db","toBeDefined","name","toBe","secret","editor","customEditor","features","toHaveProperty","slug","fields","type","globals","length","toBeGreaterThan"],"mappings":"AAAA,SAASA,aAAa,QAAQ,+BAA8B;AAC5D,SAASC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,SAAQ;AAI7C,SAASC,WAAW,QAAQ,oBAAmB;AAE/CH,SAAS,eAAe;IACtBE,GAAG,kDAAkD;QACnD,MAAME,SAAsB;YAAEC,aAAa,EAAE;QAAC;QAC9C,MAAMC,SAAS,MAAMH,YAAYC;QAEjCH,OAAOK,OAAOC,EAAE,EAAEC,WAAW;QAC7BP,OAAOK,OAAOC,EAAE,CAACE,IAAI,EAAEC,IAAI,CAAC;IAC9B;IAEAR,GAAG,wBAAwB;QACzB,MAAME,SAAsB;YAAEC,aAAa,EAAE;QAAC;QAC9C,MAAMC,SAAS,MAAMH,YAAYC;QAEjCH,OAAOK,OAAOK,MAAM,EAAED,IAAI,CAAC;IAC7B;IAEAR,GAAG,+DAA+D;QAChE,MAAME,SAAsB;YAAEC,aAAa,EAAE;QAAC;QAC9C,MAAMC,SAAS,MAAMH,YAAYC;QAEjCH,OAAOK,OAAOM,MAAM,EAAEJ,WAAW;QACjC,mCAAmC;QACnCP,OAAO,OAAOK,OAAOM,MAAM,EAAEF,IAAI,CAAC;IACpC;IAEAR,GAAG,kDAAkD;QACnD,MAAMW,eAAed,cAAc;YACjCe,UAAU,EAAE;QACd;QAEA,MAAMV,SAAsB;YAC1BC,aAAa,EAAE;YACfO,QAAQC;QACV;QAEA,MAAMP,SAAS,MAAMH,YAAYC;QAEjC,4DAA4D;QAC5DH,OAAOK,OAAOM,MAAM,EAAEJ,WAAW;QACjCP,OAAO,OAAOK,OAAOM,MAAM,EAAEF,IAAI,CAAC;QAClC,4DAA4D;QAC5DT,OAAOK,OAAOM,MAAM,EAAEG,cAAc,CAAC;IACvC;IAEAb,GAAG,4CAA4C;QAC7C,MAAME,SAAsB;YAC1BC,aAAa;gBACX;oBACEW,MAAM;oBACNC,QAAQ;wBACN;4BACER,MAAM;4BACNS,MAAM;wBACR;qBACD;gBACH;aACD;YACDC,SAAS;gBACP;oBACEH,MAAM;oBACNC,QAAQ,EAAE;gBACZ;aACD;QACH;QAEA,MAAMX,SAAS,MAAMH,YAAYC;QAEjC,0CAA0C;QAC1CH,OAAOK,OAAOD,WAAW,EAAEG,WAAW;QACtCP,OAAOK,OAAOD,WAAW,CAACe,MAAM,EAAEC,eAAe,CAAC;QAClDpB,OAAOK,OAAOa,OAAO,EAAEX,WAAW;IACpC;AACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"asset-collection.spec.d.ts","sourceRoot":"","sources":["../../src/utils/asset-collection.spec.ts"],"names":[],"mappings":""}
|
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
import fs from 'fs/promises';
|
|
2
|
-
import path from 'path';
|
|
3
|
-
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
4
|
-
import { collectStaticAssets, createLambdaZip, getFileSize } from './asset-collection.js';
|
|
5
|
-
import * as log from './log.js';
|
|
6
|
-
describe('asset-collection', ()=>{
|
|
7
|
-
const testDir = path.join(process.cwd(), 'test-fixtures', 'asset-collection');
|
|
8
|
-
beforeEach(async ()=>{
|
|
9
|
-
await fs.mkdir(testDir, {
|
|
10
|
-
recursive: true
|
|
11
|
-
});
|
|
12
|
-
});
|
|
13
|
-
afterEach(async ()=>{
|
|
14
|
-
await fs.rm(testDir, {
|
|
15
|
-
force: true,
|
|
16
|
-
recursive: true
|
|
17
|
-
});
|
|
18
|
-
});
|
|
19
|
-
describe('getFileSize', ()=>{
|
|
20
|
-
it('should return file size in bytes', async ()=>{
|
|
21
|
-
const testFile = path.join(testDir, 'test.txt');
|
|
22
|
-
await fs.writeFile(testFile, 'hello world'); // 11 bytes
|
|
23
|
-
const size = await getFileSize(testFile);
|
|
24
|
-
expect(size).toBe(11);
|
|
25
|
-
});
|
|
26
|
-
it('should throw error for non-existent file', async ()=>{
|
|
27
|
-
await expect(getFileSize(path.join(testDir, 'missing.txt'))).rejects.toThrow();
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
describe('collectStaticAssets', ()=>{
|
|
31
|
-
it('should return empty array when no static directory', async ()=>{
|
|
32
|
-
const assets = await collectStaticAssets(testDir);
|
|
33
|
-
expect(assets).toEqual([]);
|
|
34
|
-
});
|
|
35
|
-
it('should collect files from .next/static', async ()=>{
|
|
36
|
-
const staticDir = path.join(testDir, '.next', 'static', 'chunks');
|
|
37
|
-
await fs.mkdir(staticDir, {
|
|
38
|
-
recursive: true
|
|
39
|
-
});
|
|
40
|
-
await fs.writeFile(path.join(staticDir, 'main.js'), '// code');
|
|
41
|
-
await fs.writeFile(path.join(staticDir, 'vendor.js'), '// vendor');
|
|
42
|
-
const assets = await collectStaticAssets(testDir);
|
|
43
|
-
expect(assets.length).toBe(2);
|
|
44
|
-
expect(assets).toContain('_next/static/chunks/main.js');
|
|
45
|
-
expect(assets).toContain('_next/static/chunks/vendor.js');
|
|
46
|
-
});
|
|
47
|
-
it('should collect nested files', async ()=>{
|
|
48
|
-
const nestedDir = path.join(testDir, '.next', 'static', 'css', 'pages');
|
|
49
|
-
await fs.mkdir(nestedDir, {
|
|
50
|
-
recursive: true
|
|
51
|
-
});
|
|
52
|
-
await fs.writeFile(path.join(nestedDir, 'home.css'), '/* styles */');
|
|
53
|
-
const assets = await collectStaticAssets(testDir);
|
|
54
|
-
expect(assets).toContain('_next/static/css/pages/home.css');
|
|
55
|
-
});
|
|
56
|
-
it('should not include directories in results', async ()=>{
|
|
57
|
-
const staticDir = path.join(testDir, '.next', 'static', 'chunks');
|
|
58
|
-
await fs.mkdir(staticDir, {
|
|
59
|
-
recursive: true
|
|
60
|
-
});
|
|
61
|
-
await fs.mkdir(path.join(staticDir, 'subfolder'));
|
|
62
|
-
await fs.writeFile(path.join(staticDir, 'file.js'), '// code');
|
|
63
|
-
const assets = await collectStaticAssets(testDir);
|
|
64
|
-
expect(assets.length).toBe(1);
|
|
65
|
-
expect(assets[0]).toBe('_next/static/chunks/file.js');
|
|
66
|
-
});
|
|
67
|
-
it('should handle empty static directory', async ()=>{
|
|
68
|
-
await fs.mkdir(path.join(testDir, '.next', 'static'), {
|
|
69
|
-
recursive: true
|
|
70
|
-
});
|
|
71
|
-
const assets = await collectStaticAssets(testDir);
|
|
72
|
-
expect(assets).toEqual([]);
|
|
73
|
-
});
|
|
74
|
-
it('should exclude files larger than 50MB', async ()=>{
|
|
75
|
-
const staticDir = path.join(testDir, '.next', 'static');
|
|
76
|
-
await fs.mkdir(staticDir, {
|
|
77
|
-
recursive: true
|
|
78
|
-
});
|
|
79
|
-
// Create a small file (should be included)
|
|
80
|
-
await fs.writeFile(path.join(staticDir, 'small.js'), '// small file');
|
|
81
|
-
// Create a large file (> 50MB, should be excluded)
|
|
82
|
-
const largeFile = path.join(staticDir, 'large.bin');
|
|
83
|
-
const largeSize = 51 * 1024 * 1024 // 51MB
|
|
84
|
-
;
|
|
85
|
-
const buffer = Buffer.alloc(largeSize);
|
|
86
|
-
await fs.writeFile(largeFile, buffer);
|
|
87
|
-
const assets = await collectStaticAssets(testDir);
|
|
88
|
-
// Should only include the small file
|
|
89
|
-
expect(assets.length).toBe(1);
|
|
90
|
-
expect(assets).toContain('_next/static/small.js');
|
|
91
|
-
expect(assets).not.toContain('_next/static/large.bin');
|
|
92
|
-
});
|
|
93
|
-
it('should warn when files larger than 50MB are excluded', async ()=>{
|
|
94
|
-
const staticDir = path.join(testDir, '.next', 'static');
|
|
95
|
-
await fs.mkdir(staticDir, {
|
|
96
|
-
recursive: true
|
|
97
|
-
});
|
|
98
|
-
// Create a large file (> 50MB)
|
|
99
|
-
const largeFile = path.join(staticDir, 'large.bin');
|
|
100
|
-
const largeSize = 51 * 1024 * 1024 // 51MB
|
|
101
|
-
;
|
|
102
|
-
const buffer = Buffer.alloc(largeSize);
|
|
103
|
-
await fs.writeFile(largeFile, buffer);
|
|
104
|
-
// Spy on warning function
|
|
105
|
-
const warnSpy = vi.spyOn(log, 'warning');
|
|
106
|
-
await collectStaticAssets(testDir);
|
|
107
|
-
// Should have warned about the large file
|
|
108
|
-
expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('Skipping large asset'));
|
|
109
|
-
expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('.next/static/large.bin'));
|
|
110
|
-
expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('51.00MB exceeds 50MB limit'));
|
|
111
|
-
warnSpy.mockRestore();
|
|
112
|
-
});
|
|
113
|
-
it('should include files exactly at 50MB limit', async ()=>{
|
|
114
|
-
const staticDir = path.join(testDir, '.next', 'static');
|
|
115
|
-
await fs.mkdir(staticDir, {
|
|
116
|
-
recursive: true
|
|
117
|
-
});
|
|
118
|
-
// Create a file exactly at 50MB limit (should be included)
|
|
119
|
-
const limitFile = path.join(staticDir, 'limit.bin');
|
|
120
|
-
const limitSize = 50 * 1024 * 1024 // Exactly 50MB
|
|
121
|
-
;
|
|
122
|
-
const buffer = Buffer.alloc(limitSize);
|
|
123
|
-
await fs.writeFile(limitFile, buffer);
|
|
124
|
-
const assets = await collectStaticAssets(testDir);
|
|
125
|
-
// Should include the file at the limit
|
|
126
|
-
expect(assets).toContain('_next/static/limit.bin');
|
|
127
|
-
});
|
|
128
|
-
});
|
|
129
|
-
describe('createLambdaZip', ()=>{
|
|
130
|
-
it('should create lambda.zip at project root', async ()=>{
|
|
131
|
-
// Create minimal build structure
|
|
132
|
-
const standalonePath = path.join(testDir, '.next', 'standalone');
|
|
133
|
-
await fs.mkdir(standalonePath, {
|
|
134
|
-
recursive: true
|
|
135
|
-
});
|
|
136
|
-
await fs.writeFile(path.join(standalonePath, 'server.js'), '// server');
|
|
137
|
-
await fs.writeFile(path.join(testDir, 'build_for_lambda.sh'), '#!/bin/bash\ntouch lambda.zip');
|
|
138
|
-
await fs.chmod(path.join(testDir, 'build_for_lambda.sh'), 0o755);
|
|
139
|
-
await createLambdaZip(testDir);
|
|
140
|
-
const zipPath = path.join(testDir, 'lambda.zip');
|
|
141
|
-
const exists = await fs.stat(zipPath).then(()=>true).catch(()=>false);
|
|
142
|
-
expect(exists).toBe(true);
|
|
143
|
-
});
|
|
144
|
-
it('should throw error if build_for_lambda.sh missing', async ()=>{
|
|
145
|
-
await expect(createLambdaZip(testDir)).rejects.toThrow();
|
|
146
|
-
});
|
|
147
|
-
it('should throw error if build_for_lambda.sh fails', async ()=>{
|
|
148
|
-
await fs.writeFile(path.join(testDir, 'build_for_lambda.sh'), '#!/bin/bash\nexit 1');
|
|
149
|
-
await fs.chmod(path.join(testDir, 'build_for_lambda.sh'), 0o755);
|
|
150
|
-
await expect(createLambdaZip(testDir)).rejects.toThrow();
|
|
151
|
-
});
|
|
152
|
-
});
|
|
153
|
-
});
|
|
154
|
-
|
|
155
|
-
//# sourceMappingURL=asset-collection.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/asset-collection.spec.ts"],"sourcesContent":["import fs from 'fs/promises'\nimport path from 'path'\nimport { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'\n\nimport { collectStaticAssets, createLambdaZip, getFileSize } from './asset-collection.js'\nimport * as log from './log.js'\n\ndescribe('asset-collection', () => {\n const testDir = path.join(process.cwd(), 'test-fixtures', 'asset-collection')\n\n beforeEach(async () => {\n await fs.mkdir(testDir, { recursive: true })\n })\n\n afterEach(async () => {\n await fs.rm(testDir, { force: true, recursive: true })\n })\n\n describe('getFileSize', () => {\n it('should return file size in bytes', async () => {\n const testFile = path.join(testDir, 'test.txt')\n await fs.writeFile(testFile, 'hello world') // 11 bytes\n\n const size = await getFileSize(testFile)\n expect(size).toBe(11)\n })\n\n it('should throw error for non-existent file', async () => {\n await expect(getFileSize(path.join(testDir, 'missing.txt'))).rejects.toThrow()\n })\n })\n\n describe('collectStaticAssets', () => {\n it('should return empty array when no static directory', async () => {\n const assets = await collectStaticAssets(testDir)\n expect(assets).toEqual([])\n })\n\n it('should collect files from .next/static', async () => {\n const staticDir = path.join(testDir, '.next', 'static', 'chunks')\n await fs.mkdir(staticDir, { recursive: true })\n await fs.writeFile(path.join(staticDir, 'main.js'), '// code')\n await fs.writeFile(path.join(staticDir, 'vendor.js'), '// vendor')\n\n const assets = await collectStaticAssets(testDir)\n\n expect(assets.length).toBe(2)\n expect(assets).toContain('_next/static/chunks/main.js')\n expect(assets).toContain('_next/static/chunks/vendor.js')\n })\n\n it('should collect nested files', async () => {\n const nestedDir = path.join(testDir, '.next', 'static', 'css', 'pages')\n await fs.mkdir(nestedDir, { recursive: true })\n await fs.writeFile(path.join(nestedDir, 'home.css'), '/* styles */')\n\n const assets = await collectStaticAssets(testDir)\n\n expect(assets).toContain('_next/static/css/pages/home.css')\n })\n\n it('should not include directories in results', async () => {\n const staticDir = path.join(testDir, '.next', 'static', 'chunks')\n await fs.mkdir(staticDir, { recursive: true })\n await fs.mkdir(path.join(staticDir, 'subfolder'))\n await fs.writeFile(path.join(staticDir, 'file.js'), '// code')\n\n const assets = await collectStaticAssets(testDir)\n\n expect(assets.length).toBe(1)\n expect(assets[0]).toBe('_next/static/chunks/file.js')\n })\n\n it('should handle empty static directory', async () => {\n await fs.mkdir(path.join(testDir, '.next', 'static'), { recursive: true })\n\n const assets = await collectStaticAssets(testDir)\n expect(assets).toEqual([])\n })\n\n it('should exclude files larger than 50MB', async () => {\n const staticDir = path.join(testDir, '.next', 'static')\n await fs.mkdir(staticDir, { recursive: true })\n\n // Create a small file (should be included)\n await fs.writeFile(path.join(staticDir, 'small.js'), '// small file')\n\n // Create a large file (> 50MB, should be excluded)\n const largeFile = path.join(staticDir, 'large.bin')\n const largeSize = 51 * 1024 * 1024 // 51MB\n const buffer = Buffer.alloc(largeSize)\n await fs.writeFile(largeFile, buffer)\n\n const assets = await collectStaticAssets(testDir)\n\n // Should only include the small file\n expect(assets.length).toBe(1)\n expect(assets).toContain('_next/static/small.js')\n expect(assets).not.toContain('_next/static/large.bin')\n })\n\n it('should warn when files larger than 50MB are excluded', async () => {\n const staticDir = path.join(testDir, '.next', 'static')\n await fs.mkdir(staticDir, { recursive: true })\n\n // Create a large file (> 50MB)\n const largeFile = path.join(staticDir, 'large.bin')\n const largeSize = 51 * 1024 * 1024 // 51MB\n const buffer = Buffer.alloc(largeSize)\n await fs.writeFile(largeFile, buffer)\n\n // Spy on warning function\n const warnSpy = vi.spyOn(log, 'warning')\n\n await collectStaticAssets(testDir)\n\n // Should have warned about the large file\n expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('Skipping large asset'))\n expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('.next/static/large.bin'))\n expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('51.00MB exceeds 50MB limit'))\n\n warnSpy.mockRestore()\n })\n\n it('should include files exactly at 50MB limit', async () => {\n const staticDir = path.join(testDir, '.next', 'static')\n await fs.mkdir(staticDir, { recursive: true })\n\n // Create a file exactly at 50MB limit (should be included)\n const limitFile = path.join(staticDir, 'limit.bin')\n const limitSize = 50 * 1024 * 1024 // Exactly 50MB\n const buffer = Buffer.alloc(limitSize)\n await fs.writeFile(limitFile, buffer)\n\n const assets = await collectStaticAssets(testDir)\n\n // Should include the file at the limit\n expect(assets).toContain('_next/static/limit.bin')\n })\n })\n\n describe('createLambdaZip', () => {\n it('should create lambda.zip at project root', async () => {\n // Create minimal build structure\n const standalonePath = path.join(testDir, '.next', 'standalone')\n await fs.mkdir(standalonePath, { recursive: true })\n await fs.writeFile(path.join(standalonePath, 'server.js'), '// server')\n await fs.writeFile(path.join(testDir, 'build_for_lambda.sh'), '#!/bin/bash\\ntouch lambda.zip')\n await fs.chmod(path.join(testDir, 'build_for_lambda.sh'), 0o755)\n\n await createLambdaZip(testDir)\n\n const zipPath = path.join(testDir, 'lambda.zip')\n const exists = await fs\n .stat(zipPath)\n .then(() => true)\n .catch(() => false)\n expect(exists).toBe(true)\n })\n\n it('should throw error if build_for_lambda.sh missing', async () => {\n await expect(createLambdaZip(testDir)).rejects.toThrow()\n })\n\n it('should throw error if build_for_lambda.sh fails', async () => {\n await fs.writeFile(path.join(testDir, 'build_for_lambda.sh'), '#!/bin/bash\\nexit 1')\n await fs.chmod(path.join(testDir, 'build_for_lambda.sh'), 0o755)\n\n await expect(createLambdaZip(testDir)).rejects.toThrow()\n })\n })\n})\n"],"names":["fs","path","afterEach","beforeEach","describe","expect","it","vi","collectStaticAssets","createLambdaZip","getFileSize","log","testDir","join","process","cwd","mkdir","recursive","rm","force","testFile","writeFile","size","toBe","rejects","toThrow","assets","toEqual","staticDir","length","toContain","nestedDir","largeFile","largeSize","buffer","Buffer","alloc","not","warnSpy","spyOn","toHaveBeenCalledWith","stringContaining","mockRestore","limitFile","limitSize","standalonePath","chmod","zipPath","exists","stat","then","catch"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build-detection.spec.d.ts","sourceRoot":"","sources":["../../src/utils/build-detection.spec.ts"],"names":[],"mappings":""}
|