@silexlabs/silex 3.0.0-alpha.80 → 3.0.0-alpha.82
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/client/js/main.js +2 -2
- package/dist/plugins/client/client/assetUrl.js +11 -5
- package/dist/plugins/client/client/assetUrl.js.map +1 -1
- package/dist/plugins/client/plugins/client/11ty.js +14 -14
- package/dist/plugins/client/plugins/client/11ty.js.map +1 -1
- package/package.json +1 -1
- package/src/ts/client/assetUrl.test.ts +50 -10
- package/src/ts/client/assetUrl.ts +11 -5
- package/src/ts/plugins/client/11ty.ts +14 -14
|
@@ -11,7 +11,8 @@ import { ClientSideFileType } from '../types';
|
|
|
11
11
|
// Get the base URL where Silex is served
|
|
12
12
|
const baseUrl = window.location.pathname.replace(/\/$/, '');
|
|
13
13
|
// Orging and path, should we use config.rootUrl?
|
|
14
|
-
const SERVER_URL = window.location.origin
|
|
14
|
+
const SERVER_URL = window.location.origin;
|
|
15
|
+
console.log('SERVER_URL', SERVER_URL);
|
|
15
16
|
/**
|
|
16
17
|
* Function to convert a path from it stored version to the displayed version
|
|
17
18
|
* Stored version is like `/assets/image.webp`
|
|
@@ -21,18 +22,23 @@ const SERVER_URL = window.location.origin + baseUrl;
|
|
|
21
22
|
export function storedToDisplayed(path, websiteId, storageId) {
|
|
22
23
|
// Check the path is a stored path
|
|
23
24
|
if (path.startsWith('/assets')) {
|
|
25
|
+
// Make an absolute URL
|
|
24
26
|
const url = new URL(path, SERVER_URL);
|
|
27
|
+
// Remove the assets folder as it is part of the saved path
|
|
25
28
|
url.pathname = url.pathname.replace(/^\/assets/, '');
|
|
29
|
+
// Add the API path and the connectorId and websiteId
|
|
26
30
|
url.pathname = `${baseUrl}${API_PATH}${API_WEBSITE_PATH}${API_WEBSITE_ASSET_READ}${url.pathname}`;
|
|
31
|
+
// Add the GET params
|
|
27
32
|
url.searchParams.set('websiteId', websiteId);
|
|
28
33
|
url.searchParams.set('connectorId', storageId);
|
|
34
|
+
// Back to a relative URL, keep the path but not the origin
|
|
29
35
|
const encodedPath = '/' + url.toString() // add a leading slash
|
|
30
36
|
.replace(new RegExp(`^${SERVER_URL}`), '')
|
|
31
37
|
.replace(/^\//, ''); // remove the first slash if it exists
|
|
32
38
|
return decodeURIComponent(encodedPath);
|
|
33
39
|
}
|
|
34
40
|
else {
|
|
35
|
-
console.
|
|
41
|
+
console.warn('storedToDisplayed: path is not a stored path', path);
|
|
36
42
|
return path;
|
|
37
43
|
}
|
|
38
44
|
}
|
|
@@ -51,16 +57,16 @@ export function displayedToStored(path) {
|
|
|
51
57
|
if (path.startsWith(apiPath)) {
|
|
52
58
|
const url = new URL(path, SERVER_URL);
|
|
53
59
|
url.pathname = url.pathname.replace(new RegExp(`^${apiPath}`), '');
|
|
54
|
-
url.pathname =
|
|
60
|
+
url.pathname = `${baseUrl}/assets${url.pathname}`;
|
|
55
61
|
url.searchParams.delete('websiteId');
|
|
56
62
|
url.searchParams.delete('connectorId');
|
|
57
63
|
const encodedPath = '/' + url.toString() // add a leading slash
|
|
58
|
-
.replace(new RegExp(`^${SERVER_URL}`), '')
|
|
64
|
+
.replace(new RegExp(`^${SERVER_URL}${baseUrl}`), '')
|
|
59
65
|
.replace(/^\//, ''); // remove the first slash if it exists
|
|
60
66
|
return decodeURIComponent(encodedPath);
|
|
61
67
|
}
|
|
62
68
|
else {
|
|
63
|
-
console.
|
|
69
|
+
console.warn('displayedToStored: path is not a displayed path', path);
|
|
64
70
|
return path;
|
|
65
71
|
}
|
|
66
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assetUrl.js","sourceRoot":"","sources":["../../../../src/ts/client/assetUrl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACjF,OAAO,EAAS,kBAAkB,EAAkD,MAAM,UAAU,CAAA;AAEpG;;;;;;;GAOG;AAEH,yCAAyC;AACzC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AAE3D,iDAAiD;AACjD,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"assetUrl.js","sourceRoot":"","sources":["../../../../src/ts/client/assetUrl.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,20 +18,20 @@ export default (config, opts) => {
|
|
|
18
18
|
},
|
|
19
19
|
};
|
|
20
20
|
config.addPublicationTransformers({
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
21
|
+
transformPermalink: (path, type) => {
|
|
22
|
+
switch (type) {
|
|
23
|
+
case 'html':
|
|
24
|
+
console.log('Silex: transform path for 11ty', path, options.html.url + path);
|
|
25
|
+
return options.html.url + path;
|
|
26
|
+
case 'css':
|
|
27
|
+
console.log('Silex: transform path for 11ty', path, options.css.url + path.replace(/\.css$/, '.css.liquid'));
|
|
28
|
+
return options.css.url + path.replace(/\.css$/, '.css.liquid');
|
|
29
|
+
case 'asset':
|
|
30
|
+
console.log('Silex: transform path for 11ty', path, options.assets.url + path);
|
|
31
|
+
return options.assets.url + path;
|
|
32
|
+
}
|
|
33
|
+
throw new Error(`Unknown file type ${type}`);
|
|
34
|
+
},
|
|
35
35
|
transformPath: (path, type) => {
|
|
36
36
|
switch (type) {
|
|
37
37
|
case 'html':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"11ty.js","sourceRoot":"","sources":["../../../../../src/ts/plugins/client/11ty.ts"],"names":[],"mappings":"AAkBA,eAAe,CAAC,MAAoB,EAAE,IAA4B,EAAE,EAAE;IACpE,MAAM,OAAO,GAAG;QACd,GAAG,IAAI;QACP,IAAI,EAAE;YACJ,GAAG,EAAE,GAAG;YACR,IAAI,EAAE,IAAI;YACV,GAAG,IAAI,CAAC,IAAI;SACb;QACD,GAAG,EAAE;YACH,GAAG,EAAE,MAAM;YACX,IAAI,EAAE,OAAO;YACb,GAAG,IAAI,CAAC,GAAG;SACZ;QACD,MAAM,EAAE;YACN,GAAG,EAAE,GAAG;YACR,IAAI,EAAE,IAAI;YACV,GAAG,IAAI,CAAC,MAAM;SACf;KACF,CAAA;IAED,MAAM,CAAC,0BAA0B,CAAC;QAChC,
|
|
1
|
+
{"version":3,"file":"11ty.js","sourceRoot":"","sources":["../../../../../src/ts/plugins/client/11ty.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,18 +1,58 @@
|
|
|
1
1
|
import { jest, expect, describe, it, beforeEach } from '@jest/globals'
|
|
2
|
-
import { displayedToStored, storedToDisplayed } from './assetUrl'
|
|
3
2
|
|
|
4
3
|
describe('assetUrl', () => {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
expect(storedToDisplayed('/assets/test.webp', 'test-id', 'test-connector'))
|
|
8
|
-
.toBe('/api/website/assets/test.webp?websiteId=test-id&connectorId=test-connector')
|
|
9
|
-
// Convert a URL which is already as displayed
|
|
10
|
-
expect(storedToDisplayed('/api/website/assets/test.webp?websiteId=test-id&connectorId=test-connector', 'test-id', 'test-connector'))
|
|
11
|
-
.toBe('/api/website/assets/test.webp?websiteId=test-id&connectorId=test-connector')
|
|
4
|
+
beforeEach(() => {
|
|
5
|
+
jest.resetModules()
|
|
12
6
|
})
|
|
13
|
-
|
|
7
|
+
|
|
8
|
+
//it('store url to display url', async () => {
|
|
9
|
+
// const { displayedToStored, storedToDisplayed } = await import('./assetUrl')
|
|
10
|
+
// // Convert a valid URL as stored
|
|
11
|
+
// expect(storedToDisplayed('/assets/test.webp', 'test-id', 'test-connector'))
|
|
12
|
+
// .toBe('/api/website/assets/test.webp?websiteId=test-id&connectorId=test-connector')
|
|
13
|
+
// // Convert a URL which is already as displayed
|
|
14
|
+
// expect(storedToDisplayed('/api/website/assets/test.webp?websiteId=test-id&connectorId=test-connector', 'test-id', 'test-connector'))
|
|
15
|
+
// .toBe('/api/website/assets/test.webp?websiteId=test-id&connectorId=test-connector')
|
|
16
|
+
//})
|
|
17
|
+
|
|
18
|
+
//it('display url to store url', async () => {
|
|
19
|
+
// const { displayedToStored, storedToDisplayed } = await import('./assetUrl')
|
|
20
|
+
// // Convert a valid URL as displayed
|
|
21
|
+
// expect(displayedToStored('/api/website/assets/test.webp?websiteId=test-id&connectorId=test-connector'))
|
|
22
|
+
// .toBe('/assets/test.webp')
|
|
23
|
+
// // Convert a URL which is already as stored
|
|
24
|
+
// expect(displayedToStored('/assets/test.webp'))
|
|
25
|
+
// .toBe('/assets/test.webp')
|
|
26
|
+
//})
|
|
27
|
+
|
|
28
|
+
//it('store url to display url with a root path', async () => {
|
|
29
|
+
// Object.defineProperty(window, 'location', {
|
|
30
|
+
// value: {
|
|
31
|
+
// href: 'http://localhost:6800/silex',
|
|
32
|
+
// pathname: '/silex',
|
|
33
|
+
// origin: 'http://localhost:6800',
|
|
34
|
+
// },
|
|
35
|
+
// });
|
|
36
|
+
// const { displayedToStored, storedToDisplayed } = await import('./assetUrl')
|
|
37
|
+
// // Convert a valid URL as stored
|
|
38
|
+
// expect(storedToDisplayed('/assets/test.webp', 'test-id', 'test-connector'))
|
|
39
|
+
// .toBe('/silex/api/website/assets/test.webp?websiteId=test-id&connectorId=test-connector')
|
|
40
|
+
// // Convert a URL which is already as displayed
|
|
41
|
+
// expect(storedToDisplayed('/silex/api/website/assets/test.webp?websiteId=test-id&connectorId=test-connector', 'test-id', 'test-connector'))
|
|
42
|
+
// .toBe('/silex/api/website/assets/test.webp?websiteId=test-id&connectorId=test-connector')
|
|
43
|
+
//})
|
|
44
|
+
|
|
45
|
+
it('display url to store url with a root path', async () => {
|
|
46
|
+
Object.defineProperty(window, 'location', {
|
|
47
|
+
value: {
|
|
48
|
+
href: 'http://localhost:6800/silex',
|
|
49
|
+
pathname: '/silex',
|
|
50
|
+
origin: 'http://localhost:6800',
|
|
51
|
+
},
|
|
52
|
+
})
|
|
53
|
+
const { displayedToStored, storedToDisplayed } = await import('./assetUrl')
|
|
14
54
|
// Convert a valid URL as displayed
|
|
15
|
-
expect(displayedToStored('/api/website/assets/test.webp?websiteId=test-id&connectorId=test-connector'))
|
|
55
|
+
expect(displayedToStored('/silex/api/website/assets/test.webp?websiteId=test-id&connectorId=test-connector'))
|
|
16
56
|
.toBe('/assets/test.webp')
|
|
17
57
|
// Convert a URL which is already as stored
|
|
18
58
|
expect(displayedToStored('/assets/test.webp'))
|
|
@@ -14,7 +14,8 @@ import { Asset, ClientSideFileType, Component, ConnectorId, Page, Style, Website
|
|
|
14
14
|
const baseUrl = window.location.pathname.replace(/\/$/, '')
|
|
15
15
|
|
|
16
16
|
// Orging and path, should we use config.rootUrl?
|
|
17
|
-
const SERVER_URL = window.location.origin
|
|
17
|
+
const SERVER_URL = window.location.origin
|
|
18
|
+
console.log('SERVER_URL', SERVER_URL)
|
|
18
19
|
|
|
19
20
|
/**
|
|
20
21
|
* Function to convert a path from it stored version to the displayed version
|
|
@@ -25,17 +26,22 @@ const SERVER_URL = window.location.origin + baseUrl
|
|
|
25
26
|
export function storedToDisplayed(path: string, websiteId: WebsiteId, storageId: ConnectorId): string {
|
|
26
27
|
// Check the path is a stored path
|
|
27
28
|
if (path.startsWith('/assets')) {
|
|
29
|
+
// Make an absolute URL
|
|
28
30
|
const url = new URL(path, SERVER_URL)
|
|
31
|
+
// Remove the assets folder as it is part of the saved path
|
|
29
32
|
url.pathname = url.pathname.replace(/^\/assets/, '')
|
|
33
|
+
// Add the API path and the connectorId and websiteId
|
|
30
34
|
url.pathname = `${baseUrl}${API_PATH}${API_WEBSITE_PATH}${API_WEBSITE_ASSET_READ}${url.pathname}`
|
|
35
|
+
// Add the GET params
|
|
31
36
|
url.searchParams.set('websiteId', websiteId)
|
|
32
37
|
url.searchParams.set('connectorId', storageId)
|
|
38
|
+
// Back to a relative URL, keep the path but not the origin
|
|
33
39
|
const encodedPath = '/' + url.toString() // add a leading slash
|
|
34
40
|
.replace(new RegExp(`^${SERVER_URL}`), '')
|
|
35
41
|
.replace(/^\//, '') // remove the first slash if it exists
|
|
36
42
|
return decodeURIComponent(encodedPath)
|
|
37
43
|
} else {
|
|
38
|
-
console.
|
|
44
|
+
console.warn('storedToDisplayed: path is not a stored path', path)
|
|
39
45
|
return path
|
|
40
46
|
}
|
|
41
47
|
}
|
|
@@ -55,15 +61,15 @@ export function displayedToStored(path: string): string {
|
|
|
55
61
|
if (path.startsWith(apiPath)) {
|
|
56
62
|
const url = new URL(path, SERVER_URL)
|
|
57
63
|
url.pathname = url.pathname.replace(new RegExp(`^${apiPath}`), '')
|
|
58
|
-
url.pathname =
|
|
64
|
+
url.pathname = `${baseUrl}/assets${url.pathname}`
|
|
59
65
|
url.searchParams.delete('websiteId')
|
|
60
66
|
url.searchParams.delete('connectorId')
|
|
61
67
|
const encodedPath = '/' + url.toString() // add a leading slash
|
|
62
|
-
.replace(new RegExp(`^${SERVER_URL}`), '')
|
|
68
|
+
.replace(new RegExp(`^${SERVER_URL}${baseUrl}`), '')
|
|
63
69
|
.replace(/^\//, '') // remove the first slash if it exists
|
|
64
70
|
return decodeURIComponent(encodedPath)
|
|
65
71
|
} else {
|
|
66
|
-
console.
|
|
72
|
+
console.warn('displayedToStored: path is not a displayed path', path)
|
|
67
73
|
return path
|
|
68
74
|
}
|
|
69
75
|
}
|
|
@@ -37,20 +37,20 @@ export default (config: ClientConfig, opts: Partial<PluginOptions>) => {
|
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
config.addPublicationTransformers({
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
40
|
+
transformPermalink: (path, type) => {
|
|
41
|
+
switch (type) {
|
|
42
|
+
case 'html':
|
|
43
|
+
console.log('Silex: transform path for 11ty', path, options.html.url + path)
|
|
44
|
+
return options.html.url + path
|
|
45
|
+
case 'css':
|
|
46
|
+
console.log('Silex: transform path for 11ty', path, options.css.url + path.replace(/\.css$/, '.css.liquid'))
|
|
47
|
+
return options.css.url + path.replace(/\.css$/, '.css.liquid')
|
|
48
|
+
case 'asset':
|
|
49
|
+
console.log('Silex: transform path for 11ty', path, options.assets.url + path)
|
|
50
|
+
return options.assets.url + path
|
|
51
|
+
}
|
|
52
|
+
throw new Error(`Unknown file type ${type}`)
|
|
53
|
+
},
|
|
54
54
|
transformPath: (path, type) => {
|
|
55
55
|
switch (type) {
|
|
56
56
|
case 'html':
|