Add desktop build type (#17592)
Implement build type inheritance. Add CircleCI jobs for desktop build type.
@ -51,6 +51,9 @@ workflows:
|
||||
- prep-build-beta:
|
||||
requires:
|
||||
- prep-deps
|
||||
- prep-build-desktop:
|
||||
requires:
|
||||
- prep-deps
|
||||
- prep-build-flask:
|
||||
requires:
|
||||
- prep-deps
|
||||
@ -130,6 +133,9 @@ workflows:
|
||||
- validate-source-maps-beta:
|
||||
requires:
|
||||
- prep-build-beta
|
||||
- validate-source-maps-desktop:
|
||||
requires:
|
||||
- prep-build-desktop
|
||||
- validate-source-maps-flask:
|
||||
requires:
|
||||
- prep-build-flask
|
||||
@ -141,6 +147,10 @@ workflows:
|
||||
requires:
|
||||
- prep-deps
|
||||
- prep-build-beta
|
||||
- test-mozilla-lint-desktop:
|
||||
requires:
|
||||
- prep-deps
|
||||
- prep-build-desktop
|
||||
- test-mozilla-lint-flask:
|
||||
requires:
|
||||
- prep-deps
|
||||
@ -159,9 +169,11 @@ workflows:
|
||||
- upload-and-validate-coverage
|
||||
- validate-source-maps
|
||||
- validate-source-maps-beta
|
||||
- validate-source-maps-desktop
|
||||
- validate-source-maps-flask
|
||||
- test-mozilla-lint
|
||||
- test-mozilla-lint-beta
|
||||
- test-mozilla-lint-desktop
|
||||
- test-mozilla-lint-flask
|
||||
- test-e2e-chrome
|
||||
- test-e2e-firefox
|
||||
@ -182,6 +194,7 @@ workflows:
|
||||
- prep-deps
|
||||
- prep-build
|
||||
- prep-build-beta
|
||||
- prep-build-desktop
|
||||
- prep-build-flask
|
||||
- prep-build-storybook
|
||||
- prep-build-ts-migration-dashboard
|
||||
@ -198,6 +211,7 @@ workflows:
|
||||
requires:
|
||||
- prep-deps
|
||||
- prep-build
|
||||
- prep-build-desktop
|
||||
- prep-build-flask
|
||||
- all-tests-pass
|
||||
- job-publish-storybook:
|
||||
@ -372,6 +386,46 @@ jobs:
|
||||
- dist-beta
|
||||
- builds-beta
|
||||
|
||||
prep-build-desktop:
|
||||
executor: node-browsers-medium-plus
|
||||
steps:
|
||||
- checkout
|
||||
- attach_workspace:
|
||||
at: .
|
||||
- when:
|
||||
condition:
|
||||
not:
|
||||
matches:
|
||||
pattern: /^master$/
|
||||
value: << pipeline.git.branch >>
|
||||
steps:
|
||||
- run:
|
||||
name: build:dist
|
||||
command: yarn build --build-type desktop dist
|
||||
- when:
|
||||
condition:
|
||||
matches:
|
||||
pattern: /^master$/
|
||||
value: << pipeline.git.branch >>
|
||||
steps:
|
||||
- run:
|
||||
name: build:prod
|
||||
command: yarn build --build-type desktop prod
|
||||
- run:
|
||||
name: build:debug
|
||||
command: find dist/ -type f -exec md5sum {} \; | sort -k 2
|
||||
- run:
|
||||
name: Move desktop build to 'dist-desktop' to avoid conflict with production build
|
||||
command: mv ./dist ./dist-desktop
|
||||
- run:
|
||||
name: Move desktop zips to 'builds-desktop' to avoid conflict with production build
|
||||
command: mv ./builds ./builds-desktop
|
||||
- persist_to_workspace:
|
||||
root: .
|
||||
paths:
|
||||
- dist-desktop
|
||||
- builds-desktop
|
||||
|
||||
prep-build-flask:
|
||||
executor: node-browsers-medium-plus
|
||||
steps:
|
||||
@ -1118,6 +1172,22 @@ jobs:
|
||||
name: Validate source maps
|
||||
command: yarn validate-source-maps
|
||||
|
||||
validate-source-maps-desktop:
|
||||
executor: node-browsers
|
||||
steps:
|
||||
- checkout
|
||||
- attach_workspace:
|
||||
at: .
|
||||
- run:
|
||||
name: Move desktop build to dist
|
||||
command: mv ./dist-desktop ./dist
|
||||
- run:
|
||||
name: Move desktop zips to builds
|
||||
command: mv ./builds-desktop ./builds
|
||||
- run:
|
||||
name: Validate source maps
|
||||
command: yarn validate-source-maps
|
||||
|
||||
validate-source-maps-flask:
|
||||
executor: node-browsers
|
||||
steps:
|
||||
@ -1160,6 +1230,22 @@ jobs:
|
||||
name: test:mozilla-lint
|
||||
command: NODE_OPTIONS=--max_old_space_size=3072 yarn mozilla-lint
|
||||
|
||||
test-mozilla-lint-desktop:
|
||||
executor: node-browsers
|
||||
steps:
|
||||
- checkout
|
||||
- attach_workspace:
|
||||
at: .
|
||||
- run:
|
||||
name: Move desktop build to dist
|
||||
command: mv ./dist-desktop ./dist
|
||||
- run:
|
||||
name: Move desktop zips to builds
|
||||
command: mv ./builds-desktop ./builds
|
||||
- run:
|
||||
name: test:mozilla-lint
|
||||
command: NODE_OPTIONS=--max_old_space_size=3072 yarn mozilla-lint
|
||||
|
||||
test-mozilla-lint-flask:
|
||||
executor: node-browsers
|
||||
steps:
|
||||
|
824
app/build-types/desktop/images/desktop-mascot.json
Normal file
@ -0,0 +1,824 @@
|
||||
{
|
||||
"chunks": [
|
||||
{
|
||||
"faces": [
|
||||
[0, 1, 2],
|
||||
[2, 3, 0],
|
||||
[4, 5, 2],
|
||||
[6, 3, 2],
|
||||
[2, 5, 6],
|
||||
[7, 8, 9],
|
||||
[10, 3, 6],
|
||||
[10, 50, 7],
|
||||
[7, 3, 10],
|
||||
[7, 9, 3],
|
||||
[49, 0, 9],
|
||||
[3, 9, 0],
|
||||
[2, 1, 4]
|
||||
],
|
||||
"name": "left ear",
|
||||
"gradient": "left-ear-gradient"
|
||||
},
|
||||
{
|
||||
"faces": [
|
||||
[53, 54, 55],
|
||||
[55, 56, 53],
|
||||
[57, 56, 55],
|
||||
[58, 59, 55],
|
||||
[55, 54, 58],
|
||||
[60, 61, 62],
|
||||
[63, 58, 54],
|
||||
[63, 60, 89],
|
||||
[60, 63, 54],
|
||||
[60, 54, 61],
|
||||
[88, 61, 53],
|
||||
[54, 53, 61],
|
||||
[55, 59, 57]
|
||||
],
|
||||
"name": "right ear",
|
||||
"gradient": "right-ear-gradient"
|
||||
},
|
||||
{
|
||||
"color": [22, 22, 22],
|
||||
"faces": [[11, 12, 13]],
|
||||
"name": "left eye"
|
||||
},
|
||||
{
|
||||
"color": [22, 22, 22],
|
||||
"faces": [[64, 65, 66]],
|
||||
"name": "right eye"
|
||||
},
|
||||
{
|
||||
"faces": [
|
||||
[14, 15, 11],
|
||||
[11, 16, 14]
|
||||
],
|
||||
"name": "left inner eye",
|
||||
"gradient": "left-inner-eye-gradient"
|
||||
},
|
||||
{
|
||||
"faces": [[17, 12, 18]],
|
||||
"name": "left outer eye",
|
||||
"gradient": "left-outer-eye-gradient"
|
||||
},
|
||||
{
|
||||
"faces": [[41, 64, 37]],
|
||||
"name": "right lower inner eye",
|
||||
"gradient": "right-inner-eye-gradient"
|
||||
},
|
||||
{
|
||||
"faces": [[67, 68, 66]],
|
||||
"name": "right outer eye",
|
||||
"gradient": "right-outer-eye-gradient"
|
||||
},
|
||||
{
|
||||
"color": [223, 117, 84],
|
||||
"faces": [
|
||||
[19, 20, 21],
|
||||
[21, 22, 19],
|
||||
[20, 19, 23],
|
||||
[23, 24, 20],
|
||||
[23, 25, 24],
|
||||
[19, 22, 26],
|
||||
[26, 27, 19],
|
||||
[23, 28, 29],
|
||||
[23, 29, 30],
|
||||
[25, 23, 30],
|
||||
[29, 51, 52],
|
||||
[52, 30, 29],
|
||||
[27, 26, 69],
|
||||
[69, 70, 27],
|
||||
[70, 71, 72],
|
||||
[72, 27, 70],
|
||||
[72, 71, 73],
|
||||
[51, 74, 72],
|
||||
[52, 51, 72],
|
||||
[73, 52, 72],
|
||||
[19, 27, 74],
|
||||
[74, 28, 19],
|
||||
[51, 29, 28],
|
||||
[28, 74, 51],
|
||||
[74, 27, 72],
|
||||
[28, 23, 19]
|
||||
],
|
||||
"name": "lower chin"
|
||||
},
|
||||
{
|
||||
"color": [255, 159, 90],
|
||||
"faces": [
|
||||
[21, 20, 24],
|
||||
[24, 31, 21]
|
||||
],
|
||||
"name": "left lower snout"
|
||||
},
|
||||
{
|
||||
"color": [255, 159, 90],
|
||||
"faces": [
|
||||
[69, 71, 70],
|
||||
[71, 69, 75]
|
||||
],
|
||||
"name": "right lower snout"
|
||||
},
|
||||
{
|
||||
"color": [147, 131, 250],
|
||||
"faces": [[31, 24, 18]],
|
||||
"name": "left upper snout"
|
||||
},
|
||||
{
|
||||
"faces": [
|
||||
[6, 5, 16],
|
||||
[16, 17, 6]
|
||||
],
|
||||
"name": "left forehead",
|
||||
"gradient": "left-forehead-gradient"
|
||||
},
|
||||
{
|
||||
"faces": [
|
||||
[24, 32, 33],
|
||||
[33, 34, 24]
|
||||
],
|
||||
"name": "left lower cheek",
|
||||
"gradient": "left-lower-cheek-gradient"
|
||||
},
|
||||
{
|
||||
"faces": [[5, 4, 35]],
|
||||
"name": "left top ear",
|
||||
"gradient": "left-top-ear-gradient"
|
||||
},
|
||||
{
|
||||
"color": [147, 131, 250],
|
||||
"faces": [[75, 68, 71]],
|
||||
"name": "right upper snout"
|
||||
},
|
||||
{
|
||||
"faces": [
|
||||
[58, 67, 40],
|
||||
[40, 59, 58]
|
||||
],
|
||||
"name": "right forhead",
|
||||
"gradient": "right-forehead-gradient"
|
||||
},
|
||||
{
|
||||
"faces": [
|
||||
[71, 76, 77],
|
||||
[77, 78, 71]
|
||||
],
|
||||
"name": "right lower cheek",
|
||||
"gradient": "right-lower-cheek-gradient"
|
||||
},
|
||||
{
|
||||
"faces": [[24, 34, 18]],
|
||||
"name": "left middle cheek",
|
||||
"gradient": "left-middle-cheek-gradient"
|
||||
},
|
||||
{
|
||||
"color": [156, 90, 221],
|
||||
"faces": [
|
||||
[16, 13, 12],
|
||||
[12, 17, 16],
|
||||
[13, 16, 11]
|
||||
],
|
||||
"name": "left above eye"
|
||||
},
|
||||
{
|
||||
"faces": [[71, 68, 76]],
|
||||
"name": "right middle cheek",
|
||||
"gradient": "right-middle-cheek-gradient"
|
||||
},
|
||||
{
|
||||
"color": [156, 90, 221],
|
||||
"faces": [
|
||||
[40, 67, 66],
|
||||
[66, 65, 40],
|
||||
[65, 64, 40]
|
||||
],
|
||||
"name": "right above eye"
|
||||
},
|
||||
{
|
||||
"color": [22, 22, 22],
|
||||
"faces": [
|
||||
[36, 15, 37],
|
||||
[37, 38, 36],
|
||||
[31, 39, 22],
|
||||
[22, 21, 31],
|
||||
[31, 15, 36],
|
||||
[36, 39, 31],
|
||||
[75, 69, 26],
|
||||
[26, 80, 75],
|
||||
[75, 80, 38],
|
||||
[38, 37, 75],
|
||||
[38, 80, 39],
|
||||
[39, 36, 38],
|
||||
[39, 80, 26],
|
||||
[26, 22, 39]
|
||||
],
|
||||
"name": "nose"
|
||||
},
|
||||
{
|
||||
"faces": [
|
||||
[17, 33, 10],
|
||||
[17, 18, 34],
|
||||
[34, 33, 17],
|
||||
[10, 6, 17]
|
||||
],
|
||||
"name": "left upper cheek",
|
||||
"gradient": "left-upper-cheek-gradient"
|
||||
},
|
||||
{
|
||||
"faces": [
|
||||
[11, 15, 31],
|
||||
[31, 18, 11],
|
||||
[18, 12, 11]
|
||||
],
|
||||
"name": "left below eye",
|
||||
"gradient": "left-below-eye-gradient"
|
||||
},
|
||||
{
|
||||
"faces": [
|
||||
[14, 16, 40],
|
||||
[40, 41, 14],
|
||||
[59, 5, 35],
|
||||
[35, 79, 59],
|
||||
[14, 41, 37],
|
||||
[37, 15, 14],
|
||||
[5, 59, 40],
|
||||
[40, 16, 5]
|
||||
],
|
||||
"name": "forehead",
|
||||
"gradient": "forehead-gradient"
|
||||
},
|
||||
{
|
||||
"faces": [
|
||||
[67, 63, 77],
|
||||
[67, 77, 76],
|
||||
[76, 68, 67],
|
||||
[63, 67, 58]
|
||||
],
|
||||
"name": "right upper cheek",
|
||||
"gradient": "right-upper-cheek-gradient"
|
||||
},
|
||||
{
|
||||
"faces": [
|
||||
[64, 68, 75],
|
||||
[75, 37, 64],
|
||||
[68, 64, 66]
|
||||
],
|
||||
"name": "right below eye",
|
||||
"gradient": "right-below-eye-gradient"
|
||||
},
|
||||
{
|
||||
"faces": [
|
||||
[35, 4, 42],
|
||||
[4, 1, 42],
|
||||
[42, 43, 44],
|
||||
[44, 35, 42],
|
||||
[45, 43, 42],
|
||||
[42, 10, 45],
|
||||
[30, 32, 24],
|
||||
[24, 25, 30],
|
||||
[30, 33, 32],
|
||||
[33, 30, 10],
|
||||
[44, 43, 46],
|
||||
[43, 45, 47],
|
||||
[47, 46, 43],
|
||||
[48, 47, 45],
|
||||
[45, 30, 48],
|
||||
[30, 45, 10],
|
||||
[49, 42, 0],
|
||||
[8, 7, 42],
|
||||
[50, 42, 7],
|
||||
[50, 10, 42],
|
||||
[1, 0, 42],
|
||||
[42, 9, 8],
|
||||
[42, 49, 9],
|
||||
[79, 81, 57],
|
||||
[57, 81, 56],
|
||||
[82, 79, 35],
|
||||
[35, 44, 82],
|
||||
[81, 79, 82],
|
||||
[82, 83, 81],
|
||||
[84, 63, 81],
|
||||
[81, 83, 84],
|
||||
[44, 46, 85],
|
||||
[85, 82, 44],
|
||||
[52, 73, 71],
|
||||
[71, 78, 52],
|
||||
[52, 78, 77],
|
||||
[77, 63, 52],
|
||||
[82, 85, 83],
|
||||
[83, 85, 86],
|
||||
[86, 84, 83],
|
||||
[87, 52, 84],
|
||||
[84, 86, 87],
|
||||
[52, 63, 84],
|
||||
[88, 53, 81],
|
||||
[62, 81, 60],
|
||||
[89, 60, 81],
|
||||
[89, 81, 63],
|
||||
[56, 81, 53],
|
||||
[81, 62, 61],
|
||||
[81, 61, 88],
|
||||
[48, 87, 86],
|
||||
[86, 47, 48],
|
||||
[47, 86, 85],
|
||||
[85, 46, 47],
|
||||
[48, 30, 52],
|
||||
[52, 87, 48]
|
||||
],
|
||||
"name": "back",
|
||||
"gradient": "back-gradient"
|
||||
},
|
||||
{
|
||||
"faces": [[57, 59, 79]],
|
||||
"name": "right top ear",
|
||||
"gradient": "right-top-ear-gradient"
|
||||
},
|
||||
{
|
||||
"faces": [[64, 41, 40]],
|
||||
"name": "right inner upper eye",
|
||||
"gradient": "right-inner-eye-gradient"
|
||||
}
|
||||
],
|
||||
"gradients": {
|
||||
"left-inner-eye-gradient": {
|
||||
"type": "linear",
|
||||
"x1": "41.97721822541966%",
|
||||
"y1": "67.79239690721649%",
|
||||
"x2": "44.56654676258992%",
|
||||
"y2": "67.79239690721649%",
|
||||
"gradientUnits": "userSpaceOnUse",
|
||||
"stops": [
|
||||
{
|
||||
"stop-color": "#BA86F3"
|
||||
},
|
||||
{
|
||||
"offset": "0.5281",
|
||||
"stop-color": "#B786F4"
|
||||
},
|
||||
{
|
||||
"offset": "0.8987",
|
||||
"stop-color": "#AE86F5"
|
||||
},
|
||||
{
|
||||
"offset": "1",
|
||||
"stop-color": "#AA86F6"
|
||||
}
|
||||
]
|
||||
},
|
||||
"right-inner-eye-gradient": {
|
||||
"type": "linear",
|
||||
"x1": "56.72805755395684%",
|
||||
"y1": "81.08904639175258%",
|
||||
"x2": "56.72805755395684%",
|
||||
"y2": "54.49574742268041%",
|
||||
"gradientUnits": "userSpaceOnUse",
|
||||
"stops": [
|
||||
{
|
||||
"stop-color": "#BA86F3"
|
||||
},
|
||||
{
|
||||
"offset": "0.5281",
|
||||
"stop-color": "#B786F4"
|
||||
},
|
||||
{
|
||||
"offset": "0.8987",
|
||||
"stop-color": "#AE86F5"
|
||||
},
|
||||
{
|
||||
"offset": "1",
|
||||
"stop-color": "#AA86F6"
|
||||
}
|
||||
]
|
||||
},
|
||||
"left-middle-cheek-gradient": {
|
||||
"type": "linear",
|
||||
"x1": "25.107913669064747%",
|
||||
"y1": "72.68865979381442%",
|
||||
"x2": "25.107913669064747%",
|
||||
"y2": "89.44690721649484%",
|
||||
"gradientUnits": "userSpaceOnUse",
|
||||
"stops": [
|
||||
{
|
||||
"stop-color": "#6848BA"
|
||||
},
|
||||
{
|
||||
"offset": "0.3363",
|
||||
"stop-color": "#6356D5"
|
||||
}
|
||||
]
|
||||
},
|
||||
"right-middle-cheek-gradient": {
|
||||
"type": "linear",
|
||||
"x1": "74.89208633093526%",
|
||||
"y1": "51.32938144329896%",
|
||||
"x2": "74.89208633093526%",
|
||||
"y2": "94.76301546391753%",
|
||||
"gradientUnits": "userSpaceOnUse",
|
||||
"stops": [
|
||||
{
|
||||
"stop-color": "#6848BA"
|
||||
},
|
||||
{
|
||||
"offset": "0.3363",
|
||||
"stop-color": "#6356D5"
|
||||
}
|
||||
]
|
||||
},
|
||||
"right-forehead-gradient": {
|
||||
"type": "linear",
|
||||
"x1": "67.00671462829736%",
|
||||
"y1": "30.13930412371134%",
|
||||
"x2": "67.00671462829736%",
|
||||
"y2": "54.49561855670103%",
|
||||
"gradientUnits": "userSpaceOnUse",
|
||||
"stops": [
|
||||
{
|
||||
"stop-color": "#DC69E6"
|
||||
},
|
||||
{
|
||||
"offset": "1",
|
||||
"stop-color": "#C289F3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"left-forehead-gradient": {
|
||||
"type": "linear",
|
||||
"x1": "32.99340527577938%",
|
||||
"y1": "30.13930412371134%",
|
||||
"x2": "32.99340527577938%",
|
||||
"y2": "54.49561855670103%",
|
||||
"gradientUnits": "userSpaceOnUse",
|
||||
"stops": [
|
||||
{
|
||||
"stop-color": "#DC69E6"
|
||||
},
|
||||
{
|
||||
"offset": "1",
|
||||
"stop-color": "#C289F3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"right-top-ear-gradient": {
|
||||
"type": "linear",
|
||||
"x1": "95.056858513189448%",
|
||||
"y1": "15.06958762886598%",
|
||||
"x2": "57.31654676258992%",
|
||||
"y2": "15.06958762886598%",
|
||||
"gradientUnits": "userSpaceOnUse",
|
||||
"stops": [
|
||||
{
|
||||
"stop-color": "#BB65ED"
|
||||
},
|
||||
{
|
||||
"offset": "1",
|
||||
"stop-color": "#E560E3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"left-top-ear-gradient": {
|
||||
"type": "linear",
|
||||
"x1": "4.943141486810552%",
|
||||
"y1": "15.06958762886598%",
|
||||
"x2": "42.68345323741008%",
|
||||
"y2": "15.06958762886598%",
|
||||
"gradientUnits": "userSpaceOnUse",
|
||||
"stops": [
|
||||
{
|
||||
"stop-color": "#BB65ED"
|
||||
},
|
||||
{
|
||||
"offset": "1",
|
||||
"stop-color": "#E560E3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"left-lower-cheek-gradient": {
|
||||
"type": "linear",
|
||||
"x1": "15.103956834532372%",
|
||||
"y1": "72.6889175257732%",
|
||||
"x2": "15.103956834532372%",
|
||||
"y2": "96.03221649484537%",
|
||||
"gradientUnits": "userSpaceOnUse",
|
||||
"stops": [
|
||||
{
|
||||
"stop-color": "#906EF7"
|
||||
},
|
||||
{
|
||||
"offset": "1",
|
||||
"stop-color": "#575ADE"
|
||||
}
|
||||
]
|
||||
},
|
||||
"right-lower-cheek-gradient": {
|
||||
"type": "linear",
|
||||
"x1": "84.91570743405276%",
|
||||
"y1": "72.6889175257732%",
|
||||
"x2": "84.91570743405276%",
|
||||
"y2": "96.03221649484537%",
|
||||
"gradientUnits": "userSpaceOnUse",
|
||||
"stops": [
|
||||
{
|
||||
"stop-color": "#906EF7"
|
||||
},
|
||||
{
|
||||
"offset": "1",
|
||||
"stop-color": "#575ADE"
|
||||
}
|
||||
]
|
||||
},
|
||||
"right-outer-eye-gradient": {
|
||||
"type": "linear",
|
||||
"x1": "68.7720623501199%",
|
||||
"y1": "63.14909793814433%",
|
||||
"x2": "78.03057553956835%",
|
||||
"y2": "63.14909793814433%",
|
||||
"gradientUnits": "userSpaceOnUse",
|
||||
"stops": [
|
||||
{
|
||||
"stop-color": "#BA86F3"
|
||||
},
|
||||
{
|
||||
"offset": "0.5281",
|
||||
"stop-color": "#B786F4"
|
||||
},
|
||||
{
|
||||
"offset": "0.8987",
|
||||
"stop-color": "#AE86F5"
|
||||
},
|
||||
{
|
||||
"offset": "1",
|
||||
"stop-color": "#AA86F6"
|
||||
}
|
||||
]
|
||||
},
|
||||
"left-outer-eye-gradient": {
|
||||
"type": "linear",
|
||||
"x1": "21.969424460431654%",
|
||||
"y1": "63.14909793814433%",
|
||||
"x2": "31.227937649880094%",
|
||||
"y2": "63.14909793814433%",
|
||||
"gradientUnits": "userSpaceOnUse",
|
||||
"stops": [
|
||||
{
|
||||
"stop-color": "#BA86F3"
|
||||
},
|
||||
{
|
||||
"offset": "0.5281",
|
||||
"stop-color": "#B786F4"
|
||||
},
|
||||
{
|
||||
"offset": "0.8987",
|
||||
"stop-color": "#AE86F5"
|
||||
},
|
||||
{
|
||||
"offset": "1",
|
||||
"stop-color": "#AA86F6"
|
||||
}
|
||||
]
|
||||
},
|
||||
"left-ear-gradient": {
|
||||
"type": "linear",
|
||||
"x1": "50%",
|
||||
"y1": "30%",
|
||||
"x2": "4%",
|
||||
"y2": "4%",
|
||||
"gradientUnits": "userSpaceOnUse",
|
||||
"stops": [
|
||||
{
|
||||
"stop-color": "#541758"
|
||||
},
|
||||
{
|
||||
"offset": "0.4286",
|
||||
"stop-color": "#4F206C"
|
||||
},
|
||||
{
|
||||
"offset": "0.62",
|
||||
"stop-color": "#4D2577"
|
||||
},
|
||||
{
|
||||
"offset": "1",
|
||||
"stop-color": "#8B45B6"
|
||||
}
|
||||
]
|
||||
},
|
||||
"right-ear-gradient": {
|
||||
"type": "linear",
|
||||
"x1": "50%",
|
||||
"y1": "30%",
|
||||
"x2": "96%",
|
||||
"y2": "4%",
|
||||
"gradientUnits": "userSpaceOnUse",
|
||||
"stops": [
|
||||
{
|
||||
"stop-color": "#541758"
|
||||
},
|
||||
{
|
||||
"offset": "0.4286",
|
||||
"stop-color": "#4F206C"
|
||||
},
|
||||
{
|
||||
"offset": "0.62",
|
||||
"stop-color": "#4D2577"
|
||||
},
|
||||
{
|
||||
"offset": "1",
|
||||
"stop-color": "#8B45B6"
|
||||
}
|
||||
]
|
||||
},
|
||||
"left-below-eye-gradient": {
|
||||
"type": "linear",
|
||||
"x1": "30.914028776978412%",
|
||||
"y1": "72.83646907216496%",
|
||||
"x2": "44.56654676258992%",
|
||||
"y2": "72.83646907216496%",
|
||||
"gradientUnits": "userSpaceOnUse",
|
||||
"stops": [
|
||||
{
|
||||
"stop-color": "#C8A8F7"
|
||||
},
|
||||
{
|
||||
"offset": "1",
|
||||
"stop-color": "#BAAAFB"
|
||||
}
|
||||
]
|
||||
},
|
||||
"right-below-eye-gradient": {
|
||||
"type": "linear",
|
||||
"x1": "55.43345323741007%",
|
||||
"y1": "72.83646907216496%",
|
||||
"x2": "69.12517985611511%",
|
||||
"y2": "72.83646907216496%",
|
||||
"gradientUnits": "userSpaceOnUse",
|
||||
"stops": [
|
||||
{
|
||||
"stop-color": "#C8A8F7"
|
||||
},
|
||||
{
|
||||
"offset": "1",
|
||||
"stop-color": "#BAAAFB"
|
||||
}
|
||||
]
|
||||
},
|
||||
"left-upper-cheek-gradient": {
|
||||
"type": "linear",
|
||||
"x1": "16.02589928057554%",
|
||||
"y1": "43.35154639175258%",
|
||||
"x2": "16.02589928057554%",
|
||||
"y2": "72.85773195876288%",
|
||||
"gradientUnits": "userSpaceOnUse",
|
||||
"stops": [
|
||||
{
|
||||
"stop-color": "#B65FE5"
|
||||
},
|
||||
{
|
||||
"offset": "1",
|
||||
"stop-color": "#ADA2FC"
|
||||
}
|
||||
]
|
||||
},
|
||||
"right-upper-cheek-gradient": {
|
||||
"type": "linear",
|
||||
"x1": "83.99364508393285%",
|
||||
"y1": "43.35154639175258%",
|
||||
"x2": "83.99364508393285%",
|
||||
"y2": "72.85773195876288%",
|
||||
"gradientUnits": "userSpaceOnUse",
|
||||
"stops": [
|
||||
{
|
||||
"stop-color": "#B65FE5"
|
||||
},
|
||||
{
|
||||
"offset": "1",
|
||||
"stop-color": "#ADA2FC"
|
||||
}
|
||||
]
|
||||
},
|
||||
"forehead-gradient": {
|
||||
"type": "linear",
|
||||
"x1": "50%",
|
||||
"y1": "12.790180412371136%",
|
||||
"x2": "50%",
|
||||
"y2": "81.08904639175258%",
|
||||
"gradientUnits": "userSpaceOnUse",
|
||||
"stops": [
|
||||
{
|
||||
"stop-color": "#FB7FE4"
|
||||
},
|
||||
{
|
||||
"offset": "1",
|
||||
"stop-color": "#BCABFB"
|
||||
}
|
||||
]
|
||||
},
|
||||
"back-gradient": {
|
||||
"type": "linear",
|
||||
"x1": "50%",
|
||||
"y1": "12.790180412371136%",
|
||||
"x2": "50%",
|
||||
"y2": "81.08904639175258%",
|
||||
"gradientUnits": "userSpaceOnUse",
|
||||
"stops": [
|
||||
{
|
||||
"stop-color": "#FB7FE4"
|
||||
},
|
||||
{
|
||||
"offset": "1",
|
||||
"stop-color": "#5C5CE0"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"positions": [
|
||||
[111.024597, 52.604599, 46.225899],
|
||||
[114.025002, 87.673302, 58.9818],
|
||||
[66.192001, 80.898003, 55.394299],
|
||||
[72.113297, 35.491798, 30.871401],
|
||||
[97.804497, 116.560997, 73.978798],
|
||||
[16.7623, 58.010899, 58.078201],
|
||||
[52.608898, 30.3641, 42.556099],
|
||||
[106.881401, 31.945499, 46.9133],
|
||||
[113.484596, 38.6049, 49.121498],
|
||||
[108.6633, 43.2332, 46.315399],
|
||||
[101.216599, 15.9822, 46.308201],
|
||||
[16.6605, -16.2883, 93.618698],
|
||||
[40.775002, -10.2288, 85.276398],
|
||||
[23.926901, -2.5103, 86.736504],
|
||||
[11.1691, -7.0037, 99.377602],
|
||||
[9.5692, -34.393902, 141.671997],
|
||||
[12.596, 7.1655, 88.740997],
|
||||
[61.180901, 8.8142, 76.996803],
|
||||
[39.719501, -28.927099, 88.963799],
|
||||
[13.7962, -68.575699, 132.057007],
|
||||
[15.2674, -62.32, 129.688004],
|
||||
[14.8446, -52.6096, 140.113007],
|
||||
[12.8917, -49.771599, 144.740997],
|
||||
[35.604198, -71.758003, 81.063904],
|
||||
[47.462502, -68.606102, 63.369701],
|
||||
[38.2486, -64.730202, 38.909901],
|
||||
[-12.8917, -49.771599, 144.740997],
|
||||
[-13.7962, -68.575699, 132.057007],
|
||||
[17.802099, -71.758003, 81.063904],
|
||||
[19.1243, -69.0168, 49.420101],
|
||||
[38.2486, -66.275597, 17.776199],
|
||||
[12.8928, -36.703499, 141.671997],
|
||||
[109.283997, -93.589897, 27.824301],
|
||||
[122.117996, -36.8894, 35.025002],
|
||||
[67.7668, -30.197001, 78.417801],
|
||||
[33.180698, 101.851997, 25.3186],
|
||||
[9.4063, -35.589802, 150.722],
|
||||
[-9.5692, -34.393902, 141.671997],
|
||||
[-9.4063, -35.589802, 150.722],
|
||||
[11.4565, -37.899399, 150.722],
|
||||
[-12.596, 7.1655, 88.740997],
|
||||
[-11.1691, -7.0037, 99.377602],
|
||||
[70.236504, 62.836201, -3.9475],
|
||||
[47.263401, 54.293999, -27.414801],
|
||||
[28.7302, 91.731102, -24.972601],
|
||||
[69.167603, 6.5862, -12.7757],
|
||||
[28.7302, 49.1003, -48.3596],
|
||||
[31.903, 5.692, -47.821999],
|
||||
[35.075802, -34.432899, -16.280899],
|
||||
[115.284103, 48.681499, 48.684101],
|
||||
[110.842796, 28.4821, 49.176201],
|
||||
[-19.1243, -69.0168, 49.420101],
|
||||
[-38.2486, -66.275597, 17.776199],
|
||||
[-111.024597, 52.604599, 46.225899],
|
||||
[-72.113297, 35.491798, 30.871401],
|
||||
[-66.192001, 80.898003, 55.394299],
|
||||
[-114.025002, 87.673302, 58.9818],
|
||||
[-97.804497, 116.560997, 73.978798],
|
||||
[-52.608898, 30.3641, 42.556099],
|
||||
[-16.7623, 58.010899, 58.078201],
|
||||
[-106.881401, 31.945499, 46.9133],
|
||||
[-108.6633, 43.2332, 46.315399],
|
||||
[-113.484596, 38.6049, 49.121498],
|
||||
[-101.216599, 15.9822, 46.308201],
|
||||
[-16.6605, -16.2883, 93.618698],
|
||||
[-23.926901, -2.5103, 86.736504],
|
||||
[-40.775002, -10.2288, 85.276398],
|
||||
[-61.180901, 8.8142, 76.996803],
|
||||
[-39.719501, -28.927099, 88.963799],
|
||||
[-14.8446, -52.6096, 140.113007],
|
||||
[-15.2674, -62.32, 129.688004],
|
||||
[-47.462502, -68.606102, 63.369701],
|
||||
[-35.604198, -71.758003, 81.063904],
|
||||
[-38.2486, -64.730202, 38.909901],
|
||||
[-17.802099, -71.758003, 81.063904],
|
||||
[-12.8928, -36.703499, 141.671997],
|
||||
[-67.7668, -30.197001, 78.417801],
|
||||
[-122.117996, -36.8894, 35.025002],
|
||||
[-109.283997, -93.589897, 27.824301],
|
||||
[-33.180698, 101.851997, 25.3186],
|
||||
[-11.4565, -37.899399, 150.722],
|
||||
[-70.236504, 62.836201, -3.9475],
|
||||
[-28.7302, 91.731102, -24.972601],
|
||||
[-47.263401, 54.293999, -27.414801],
|
||||
[-69.167603, 6.5862, -12.7757],
|
||||
[-28.7302, 49.1003, -48.3596],
|
||||
[-31.903, 5.692, -47.821999],
|
||||
[-35.075802, -34.432899, -16.280899],
|
||||
[-115.284103, 48.681499, 48.684101],
|
||||
[-110.842796, 28.4821, 49.176201]
|
||||
]
|
||||
}
|
BIN
app/build-types/desktop/images/icon-128.png
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
app/build-types/desktop/images/icon-16.png
Normal file
After Width: | Height: | Size: 902 B |
BIN
app/build-types/desktop/images/icon-19.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
app/build-types/desktop/images/icon-32.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
app/build-types/desktop/images/icon-38.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
app/build-types/desktop/images/icon-48.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
app/build-types/desktop/images/icon-512.png
Normal file
After Width: | Height: | Size: 211 KiB |
BIN
app/build-types/desktop/images/icon-64.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
102
app/build-types/desktop/images/logo/metamask-fox.svg
Normal file
@ -0,0 +1,102 @@
|
||||
<svg width="35" height="33" viewBox="0 0 35 33" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0)">
|
||||
<path d="M19.5935 17.7525L20.1702 9.81845L22.5182 4.16699H12.481L14.8289 9.81845L15.4056 17.7525L15.5841 20.2551L15.5979 26.4153H19.4013L19.415 20.2551L19.5935 17.7525Z" fill="url(#paint0_linear)"/>
|
||||
<path d="M32.3221 16.2259L25.1408 14.1221L27.3103 17.4084L24.0698 23.7337L28.3539 23.6787H34.725L32.3221 16.2259Z" fill="url(#paint1_linear)"/>
|
||||
<path d="M9.8585 14.1221L2.67726 16.2259L0.288086 23.6787H6.65921L10.9295 23.7337L7.68903 17.4084L9.8585 14.1221Z" fill="url(#paint2_linear)"/>
|
||||
<path d="M20.3076 21.7263L19.4014 26.4152L20.0604 26.8689L24.0699 23.7338L24.1934 20.585L20.3076 21.7263Z" fill="#ACACAC"/>
|
||||
<path d="M10.8193 20.585L10.9292 23.7338L14.9386 26.8689L15.5977 26.4152L14.6914 21.7263L10.8193 20.585Z" fill="#ACACAC"/>
|
||||
<path d="M33.8468 10.8216L35.0002 5.21144L33.2701 0L20.061 9.81785L24.9904 14.2455L32.3227 16.2256L33.9018 14.3693L33.2152 13.8742L34.3137 12.8705L33.4761 12.2104L34.5746 11.3717L33.8468 10.8216Z" fill="url(#paint3_linear)"/>
|
||||
<path d="M1.15317 10.8216L-0.000226729 5.21144L1.72986 0L14.939 9.81785L10.0096 14.2455L2.67729 16.2256L1.09824 14.3693L1.78479 13.8742L0.686317 12.8705L1.5239 12.2104L0.425429 11.3717L1.15317 10.8216Z" fill="url(#paint4_linear)"/>
|
||||
<path d="M7.68945 17.4082L10.8201 20.5846L10.9299 23.7334L7.68945 17.4082Z" fill="#8D8D8D"/>
|
||||
<path d="M27.3108 17.4082L24.0703 23.7334L24.1939 20.5846L27.3108 17.4082Z" fill="#8D8D8D"/>
|
||||
<path d="M24.7153 29.137L20.0605 26.8682L20.4313 29.907L20.3901 31.1858L24.7153 29.137Z" fill="#FF9F5A"/>
|
||||
<path d="M10.2842 29.137L14.6094 31.1858L14.5819 29.907L14.9389 26.8682L10.2842 29.137Z" fill="#FF9F5A"/>
|
||||
<path d="M28.354 23.6787L24.7153 29.1377L32.5007 31.2827L34.7251 23.6787H28.354Z" fill="url(#paint5_linear)"/>
|
||||
<path d="M0.288574 23.6787L2.49925 31.2827L10.2847 29.1377L6.6597 23.6787H0.288574Z" fill="url(#paint6_linear)"/>
|
||||
<path d="M1.72998 0L14.9391 9.81785L12.8657 4.1664L1.72998 0Z" fill="#757575"/>
|
||||
<path d="M22.1344 4.1664L20.061 9.81785L33.2701 0L22.1344 4.1664Z" fill="#757575"/>
|
||||
<path d="M9.85844 14.1213L7.68896 17.4077L15.4057 17.7514L14.9389 9.81738L9.85844 14.1213Z" fill="url(#paint7_linear)"/>
|
||||
<path d="M25.141 14.1213L20.0606 9.81738L19.5938 17.7514L27.3105 17.4077L25.141 14.1213Z" fill="url(#paint8_linear)"/>
|
||||
<path d="M10.2842 29.1373L14.9389 26.8685L10.9295 23.7334L10.2842 29.1373Z" fill="url(#paint9_linear)"/>
|
||||
<path d="M20.061 26.8685L24.7158 29.1373L24.0704 23.7334L20.061 26.8685Z" fill="url(#paint10_linear)"/>
|
||||
<path d="M24.0698 23.7337L24.7152 29.1377L28.3539 23.6787L24.0698 23.7337Z" fill="url(#paint11_linear)"/>
|
||||
<path d="M10.9297 23.7337L10.2843 29.1377L6.64565 23.6787L10.9297 23.7337Z" fill="url(#paint12_linear)"/>
|
||||
<path d="M27.3105 17.4082L19.5938 17.752L20.3078 21.7259L21.4474 19.3333L24.1936 20.5846L27.3105 17.4082Z" fill="#666666"/>
|
||||
<path d="M10.8196 20.5846L13.552 19.3333L14.6917 21.7259L15.4057 17.752L7.68896 17.4082L10.8196 20.5846Z" fill="#666666"/>
|
||||
<path d="M20.308 21.7258L19.4155 20.2545L19.594 17.752L20.308 21.7258Z" fill="#8D8D8D"/>
|
||||
<path d="M14.6919 21.7258L15.4059 17.752L15.5844 20.2545L14.6919 21.7258Z" fill="#8D8D8D"/>
|
||||
<path d="M19.4156 20.2549L20.3081 21.7262L19.4019 26.4151L19.4156 20.2549Z" fill="#8D8D8D"/>
|
||||
<path d="M15.5844 20.2549L15.5981 26.4151L14.6919 21.7262L15.5844 20.2549Z" fill="#8D8D8D"/>
|
||||
<path d="M20.4148 31.169L20.4313 29.9067L20.088 29.6042H14.9115L14.5819 29.9067L14.6094 31.1855L10.2842 29.1367L11.7946 30.3743L14.8703 32.5056H20.1292L23.2049 30.3743L24.7153 29.1367L20.4148 31.169Z" fill="#DF7554"/>
|
||||
<path d="M20.0607 26.8688L19.4016 26.415H15.5981L14.939 26.8688L14.582 29.9077L14.9116 29.6052H20.0881L20.4314 29.9077L20.0607 26.8688Z" fill="#161616" stroke="#161616" stroke-width="0.0657594" stroke-miterlimit="10" stroke-linejoin="round"/>
|
||||
<path d="M21.4478 19.333L20.3081 21.7256L24.1939 20.5843L21.4478 19.333Z" fill="#161616"/>
|
||||
<path d="M13.5523 19.333L14.6919 21.7256L10.8198 20.5843L13.5523 19.333Z" fill="#161616"/>
|
||||
<path d="M33.9015 14.3693L33.215 13.8742L34.3135 12.8705L33.4759 12.2104L34.5743 11.3717L33.8466 10.8216L35 5.21144L33.2699 0L22.1342 4.1664H12.8658L1.73009 0L0 5.21144L1.16712 10.8216L0.425657 11.3717L1.52413 12.2104L0.686544 12.8705L1.78501 13.8742L1.09847 14.3693L2.67752 16.2256L0.288348 23.6783L2.49902 31.2824L10.2844 29.1373L14.9392 26.8685L14.5588 29.9431L14.9117 29.6186L20.0883 29.6048L20.4315 29.9073L20.0608 26.8685L24.7156 29.1373L32.501 31.2824L34.7254 23.6783L32.3225 16.2256L33.9015 14.3693Z" fill="url(#paint13_linear)" fill-opacity="0.1" style="mix-blend-mode:color-dodge"/>
|
||||
<path d="M33.9015 14.3693L33.215 13.8742L34.3135 12.8705L33.4759 12.2104L34.5743 11.3717L33.8466 10.8216L35 5.21144L33.2699 0L22.1342 4.1664H12.8658L1.73009 0L0 5.21144L1.16712 10.8216L0.425657 11.3717L1.52413 12.2104L0.686544 12.8705L1.78501 13.8742L1.09847 14.3693L2.67752 16.2256L0.288348 23.6783L2.49902 31.2824L10.2844 29.1373L14.9392 26.8685L15.5845 26.4009H16.5457H18.468H19.4292L20.0608 26.8685L24.7156 29.1373L32.501 31.2824L34.7254 23.6783L32.3225 16.2256L33.9015 14.3693Z" fill="url(#paint14_radial)" style="mix-blend-mode:overlay"/>
|
||||
</g>
|
||||
<defs>
|
||||
<linearGradient id="paint0_linear" x1="17.4996" y1="4.16699" x2="17.4996" y2="26.4153" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#8F8F8F"/>
|
||||
<stop offset="1" stop-color="#AEAEAE"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint1_linear" x1="29.3974" y1="14.1221" x2="29.3974" y2="23.7337" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#696969"/>
|
||||
<stop offset="1" stop-color="#A6A6A6"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint2_linear" x1="5.6088" y1="14.1221" x2="5.6088" y2="23.7337" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#696969"/>
|
||||
<stop offset="1" stop-color="#A6A6A6"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint3_linear" x1="24.3725" y1="13.4755" x2="36.9499" y2="3.6613" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#1B1B1B"/>
|
||||
<stop offset="1" stop-color="#565656"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint4_linear" x1="10.6275" y1="13.4755" x2="-1.94986" y2="3.6613" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#1B1B1B"/>
|
||||
<stop offset="1" stop-color="#565656"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint5_linear" x1="29.7202" y1="23.6787" x2="29.7202" y2="31.2827" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#787878"/>
|
||||
<stop offset="1" stop-color="#5E5E5E"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint6_linear" x1="5.28661" y1="23.6787" x2="5.28661" y2="31.2827" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#787878"/>
|
||||
<stop offset="1" stop-color="#5E5E5E"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint7_linear" x1="11.5473" y1="9.81738" x2="11.5473" y2="17.7514" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#7A7A7A"/>
|
||||
<stop offset="1" stop-color="#949494"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint8_linear" x1="23.4521" y1="9.81738" x2="23.4521" y2="17.7514" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#7A7A7A"/>
|
||||
<stop offset="1" stop-color="#949494"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint9_linear" x1="12.6116" y1="32.3962" x2="12.6116" y2="-3.33511" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#7A7C7D"/>
|
||||
<stop offset="1" stop-color="#CECECF"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint10_linear" x1="22.3884" y1="32.3962" x2="22.3884" y2="-3.33511" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#7A7C7D"/>
|
||||
<stop offset="1" stop-color="#CECECF"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint11_linear" x1="26.2118" y1="16.7209" x2="26.2118" y2="30.8694" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#3E3E3E"/>
|
||||
<stop offset="1" stop-color="#616161"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint12_linear" x1="8.78767" y1="16.7209" x2="8.78767" y2="30.8694" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#3E3E3E"/>
|
||||
<stop offset="1" stop-color="#616161"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint13_linear" x1="17.4382" y1="4.12515" x2="17.4382" y2="34.1012" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FF60DC"/>
|
||||
<stop offset="1" stop-color="#6B71FF"/>
|
||||
</linearGradient>
|
||||
<radialGradient id="paint14_radial" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(17.4382 3.50637) rotate(90) scale(28.876 32.3077)">
|
||||
<stop stop-color="#FF60DC"/>
|
||||
<stop offset="1" stop-color="#6B71FF"/>
|
||||
</radialGradient>
|
||||
<clipPath id="clip0">
|
||||
<rect width="35" height="32.5749" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
After Width: | Height: | Size: 8.2 KiB |
26
app/build-types/desktop/manifest/_base.json
Normal file
@ -0,0 +1,26 @@
|
||||
{
|
||||
"browser_action": {
|
||||
"default_icon": {
|
||||
"16": "images/icon-16.png",
|
||||
"19": "images/icon-19.png",
|
||||
"32": "images/icon-32.png",
|
||||
"38": "images/icon-38.png",
|
||||
"64": "images/icon-64.png",
|
||||
"128": "images/icon-128.png",
|
||||
"512": "images/icon-512.png"
|
||||
},
|
||||
"default_title": "MetaMask Flask"
|
||||
},
|
||||
"icons": {
|
||||
"16": "images/icon-16.png",
|
||||
"19": "images/icon-19.png",
|
||||
"32": "images/icon-32.png",
|
||||
"38": "images/icon-38.png",
|
||||
"48": "images/icon-48.png",
|
||||
"64": "images/icon-64.png",
|
||||
"128": "images/icon-128.png",
|
||||
"512": "images/icon-512.png"
|
||||
},
|
||||
"name": "__MSG_appNameFlask__",
|
||||
"short_name": "__MSG_appNameFlask__"
|
||||
}
|
4
app/build-types/desktop/manifest/chrome.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"description": "THIS IS THE CANARY DISTRIBUTION OF THE METAMASK EXTENSION, INTENDED FOR DEVELOPERS.",
|
||||
"name": "MetaMask Desktop DEVELOPMENT BUILD"
|
||||
}
|
7
app/build-types/desktop/manifest/firefox.json
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"applications": {
|
||||
"gecko": {
|
||||
"id": "webextension-desktop@metamask.io"
|
||||
}
|
||||
}
|
||||
}
|
@ -11,7 +11,7 @@ const { hideBin } = require('yargs/helpers');
|
||||
const { sync: globby } = require('globby');
|
||||
const lavapack = require('@lavamoat/lavapack');
|
||||
const { getVersion } = require('../lib/get-version');
|
||||
const { BuildType } = require('../lib/build-type');
|
||||
const { BuildType, BuildTypeInheritance } = require('../lib/build-type');
|
||||
const { TASKS, ENVIRONMENT } = require('./constants');
|
||||
const {
|
||||
createTask,
|
||||
@ -364,13 +364,16 @@ testDev: Create an unoptimized, live-reloading build for debugging e2e tests.`,
|
||||
* build, or `null` if no files are to be ignored.
|
||||
*/
|
||||
function getIgnoredFiles(currentBuildType) {
|
||||
const inheritedBuildTypes = BuildTypeInheritance[currentBuildType] || [];
|
||||
const excludedFiles = Object.values(BuildType)
|
||||
// This filter removes "main" and the current build type. The files of any
|
||||
// build types that remain in the array will be excluded. "main" is the
|
||||
// default build type, and has no files that are excluded from other builds.
|
||||
.filter(
|
||||
(buildType) =>
|
||||
buildType !== BuildType.main && buildType !== currentBuildType,
|
||||
buildType !== BuildType.main &&
|
||||
buildType !== currentBuildType &&
|
||||
!inheritedBuildTypes.includes(buildType),
|
||||
)
|
||||
// Compute globs targeting files for exclusion for each excluded build
|
||||
// type.
|
||||
|
@ -44,6 +44,12 @@ module.exports = function createStaticAssetTasks({
|
||||
dest: `images`,
|
||||
},
|
||||
],
|
||||
[BuildType.desktop]: [
|
||||
{
|
||||
src: './app/build-types/desktop/images/',
|
||||
dest: `images`,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
if (Object.keys(additionalBuildTargets).includes(buildType)) {
|
||||
|
@ -1,6 +1,6 @@
|
||||
const path = require('path');
|
||||
const { PassThrough, Transform } = require('stream');
|
||||
const { BuildType } = require('../../lib/build-type');
|
||||
const { BuildType, BuildTypeInheritance } = require('../../lib/build-type');
|
||||
const { lintTransformedFile } = require('./utils');
|
||||
|
||||
const hasKey = (obj, key) => Reflect.hasOwnProperty.call(obj, key);
|
||||
@ -337,7 +337,16 @@ function removeFencedCode(filePath, typeOfCurrentBuild, fileContent) {
|
||||
// Throws an error if the command parameters are invalid
|
||||
CommandValidators[command](parameters, filePath);
|
||||
|
||||
if (parameters.includes(typeOfCurrentBuild)) {
|
||||
const validBuildTypes = [
|
||||
typeOfCurrentBuild,
|
||||
...(BuildTypeInheritance[typeOfCurrentBuild] || []),
|
||||
];
|
||||
|
||||
const buildTypeMatches = validBuildTypes.some((validBuildType) =>
|
||||
parameters.includes(validBuildType),
|
||||
);
|
||||
|
||||
if (buildTypeMatches) {
|
||||
shouldSplice = false;
|
||||
} else {
|
||||
shouldSplice = true;
|
||||
|
@ -271,6 +271,21 @@ describe('build/transforms/remove-fenced-code', () => {
|
||||
).toStrictEqual(['', true]);
|
||||
});
|
||||
|
||||
it('keeps fences with inherited build types', () => {
|
||||
// Desktop inherits from the flask build type
|
||||
const minimalCode =
|
||||
getMinimalFencedCode(BuildType.flask) +
|
||||
getMinimalFencedCode(BuildType.desktop);
|
||||
|
||||
expect(
|
||||
removeFencedCode(mockFileName, BuildType.desktop, minimalCode),
|
||||
).toStrictEqual([minimalCode, false]);
|
||||
|
||||
expect(
|
||||
removeFencedCode(mockFileName, BuildType.flask, minimalCode),
|
||||
).toStrictEqual([getMinimalFencedCode(BuildType.flask), true]);
|
||||
});
|
||||
|
||||
it('ignores sentinels preceded by non-whitespace', () => {
|
||||
const validBeginDirective = '///: BEGIN:ONLY_INCLUDE_IN(flask)\n';
|
||||
const ignoredLines = [
|
||||
@ -629,14 +644,14 @@ function getTestData() {
|
||||
const data = {
|
||||
validInputs: {
|
||||
withFences: `
|
||||
///: BEGIN:ONLY_INCLUDE_IN(flask,beta)
|
||||
///: BEGIN:ONLY_INCLUDE_IN(flask,beta,desktop)
|
||||
Conditionally_Included
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
///: BEGIN:ONLY_INCLUDE_IN(flask,beta)
|
||||
///: BEGIN:ONLY_INCLUDE_IN(flask,beta,desktop)
|
||||
Conditionally_Included
|
||||
|
||||
Conditionally_Included
|
||||
@ -655,22 +670,39 @@ Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
|
||||
Always_Included
|
||||
Always_Included
|
||||
///: BEGIN:ONLY_INCLUDE_IN(desktop)
|
||||
|
||||
Conditionally_Included
|
||||
Conditionally_Included
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
|
||||
///: BEGIN:ONLY_INCLUDE_IN(flask)
|
||||
Conditionally_Included
|
||||
Conditionally_Included
|
||||
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
|
||||
///: BEGIN:ONLY_INCLUDE_IN(desktop)
|
||||
Conditionally_Included
|
||||
Conditionally_Included
|
||||
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
`,
|
||||
|
||||
extraContentWithFences: `
|
||||
///: BEGIN:ONLY_INCLUDE_IN(flask,beta)
|
||||
///: BEGIN:ONLY_INCLUDE_IN(flask,beta,desktop)
|
||||
Conditionally_Included
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
///: BEGIN:ONLY_INCLUDE_IN(flask,beta)
|
||||
///: BEGIN:ONLY_INCLUDE_IN(flask,beta,desktop)
|
||||
Conditionally_Included
|
||||
|
||||
Conditionally_Included
|
||||
@ -689,11 +721,28 @@ Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
|
||||
Always_Included
|
||||
Always_Included
|
||||
///: BEGIN:ONLY_INCLUDE_IN(desktop)
|
||||
|
||||
Conditionally_Included
|
||||
Conditionally_Included
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
|
||||
///: BEGIN:ONLY_INCLUDE_IN(flask)
|
||||
Conditionally_Included
|
||||
Conditionally_Included
|
||||
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
|
||||
///: BEGIN:ONLY_INCLUDE_IN(desktop)
|
||||
Conditionally_Included
|
||||
Conditionally_Included
|
||||
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
@ -712,6 +761,13 @@ Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
|
||||
Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
|
||||
|
||||
`,
|
||||
|
||||
extraContentWithoutFences: `
|
||||
@ -727,6 +783,13 @@ Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
|
||||
Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
|
||||
|
||||
Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
@ -736,14 +799,14 @@ Always_Included
|
||||
validOutputs: {
|
||||
beta: [
|
||||
`
|
||||
///: BEGIN:ONLY_INCLUDE_IN(flask,beta)
|
||||
///: BEGIN:ONLY_INCLUDE_IN(flask,beta,desktop)
|
||||
Conditionally_Included
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
///: BEGIN:ONLY_INCLUDE_IN(flask,beta)
|
||||
///: BEGIN:ONLY_INCLUDE_IN(flask,beta,desktop)
|
||||
Conditionally_Included
|
||||
|
||||
Conditionally_Included
|
||||
@ -757,6 +820,56 @@ Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
|
||||
Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
|
||||
|
||||
`,
|
||||
true,
|
||||
],
|
||||
flask: [
|
||||
`
|
||||
///: BEGIN:ONLY_INCLUDE_IN(flask,beta,desktop)
|
||||
Conditionally_Included
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
///: BEGIN:ONLY_INCLUDE_IN(flask,beta,desktop)
|
||||
Conditionally_Included
|
||||
|
||||
Conditionally_Included
|
||||
Conditionally_Included
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
Always_Included
|
||||
|
||||
Always_Included
|
||||
Always_Included
|
||||
///: BEGIN:ONLY_INCLUDE_IN(flask)
|
||||
|
||||
Conditionally_Included
|
||||
Conditionally_Included
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
|
||||
Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
|
||||
///: BEGIN:ONLY_INCLUDE_IN(flask)
|
||||
Conditionally_Included
|
||||
Conditionally_Included
|
||||
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
|
||||
`,
|
||||
true,
|
||||
],
|
||||
@ -765,14 +878,14 @@ Always_Included
|
||||
validOutputsWithExtraContent: {
|
||||
beta: [
|
||||
`
|
||||
///: BEGIN:ONLY_INCLUDE_IN(flask,beta)
|
||||
///: BEGIN:ONLY_INCLUDE_IN(flask,beta,desktop)
|
||||
Conditionally_Included
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
///: BEGIN:ONLY_INCLUDE_IN(flask,beta)
|
||||
///: BEGIN:ONLY_INCLUDE_IN(flask,beta,desktop)
|
||||
Conditionally_Included
|
||||
|
||||
Conditionally_Included
|
||||
@ -786,6 +899,59 @@ Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
|
||||
Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
|
||||
|
||||
Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
`,
|
||||
true,
|
||||
],
|
||||
flask: [
|
||||
`
|
||||
///: BEGIN:ONLY_INCLUDE_IN(flask,beta,desktop)
|
||||
Conditionally_Included
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
///: BEGIN:ONLY_INCLUDE_IN(flask,beta,desktop)
|
||||
Conditionally_Included
|
||||
|
||||
Conditionally_Included
|
||||
Conditionally_Included
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
Always_Included
|
||||
|
||||
Always_Included
|
||||
Always_Included
|
||||
///: BEGIN:ONLY_INCLUDE_IN(flask)
|
||||
|
||||
Conditionally_Included
|
||||
Conditionally_Included
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
|
||||
Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
|
||||
///: BEGIN:ONLY_INCLUDE_IN(flask)
|
||||
Conditionally_Included
|
||||
Conditionally_Included
|
||||
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
|
||||
Always_Included
|
||||
Always_Included
|
||||
Always_Included
|
||||
@ -795,10 +961,10 @@ Always_Included
|
||||
},
|
||||
};
|
||||
|
||||
data.validOutputs.flask = [data.validInputs.withFences, false];
|
||||
data.validOutputs.desktop = [data.validInputs.withFences, false];
|
||||
data.validOutputs.main = [data.validInputs.withoutFences, true];
|
||||
|
||||
data.validOutputsWithExtraContent.flask = [
|
||||
data.validOutputsWithExtraContent.desktop = [
|
||||
data.validInputs.extraContentWithFences,
|
||||
false,
|
||||
];
|
||||
|
@ -55,7 +55,9 @@ function getBrowserVersionMap(platforms, version) {
|
||||
[buildType, buildVersion] = prerelease;
|
||||
if (!String(buildVersion).match(/^\d+$/u)) {
|
||||
throw new Error(`Invalid prerelease build version: '${buildVersion}'`);
|
||||
} else if (![BuildType.beta, BuildType.flask].includes(buildType)) {
|
||||
} else if (
|
||||
![BuildType.beta, BuildType.flask, BuildType.desktop].includes(buildType)
|
||||
) {
|
||||
throw new Error(`Invalid prerelease build type: ${buildType}`);
|
||||
}
|
||||
}
|
||||
|
@ -5,8 +5,13 @@
|
||||
*/
|
||||
const BuildType = {
|
||||
beta: 'beta',
|
||||
desktop: 'desktop',
|
||||
flask: 'flask',
|
||||
main: 'main',
|
||||
};
|
||||
|
||||
module.exports = { BuildType };
|
||||
const BuildTypeInheritance = {
|
||||
[BuildType.desktop]: [BuildType.flask],
|
||||
};
|
||||
|
||||
module.exports = { BuildType, BuildTypeInheritance };
|
||||
|
4614
lavamoat/browserify/desktop/policy.json
Normal file
@ -1,6 +1,9 @@
|
||||
///: BEGIN:ONLY_INCLUDE_IN(flask)
|
||||
import flaskJson from '../../../app/build-types/flask/images/flask-mascot.json';
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
///: BEGIN:ONLY_INCLUDE_IN(desktop)
|
||||
import desktopJson from '../../../app/build-types/desktop/images/desktop-mascot.json';
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
|
||||
const assetList = {
|
||||
main: {
|
||||
@ -17,6 +20,11 @@ const assetList = {
|
||||
foxMeshJson: flaskJson,
|
||||
},
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
///: BEGIN:ONLY_INCLUDE_IN(desktop)
|
||||
desktop: {
|
||||
foxMeshJson: desktopJson,
|
||||
},
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
};
|
||||
|
||||
export function isBeta() {
|
||||
|