cdk-nuxt 1.2.3 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -15,8 +15,9 @@ export interface StaticAssetConfig {
15
15
  target: string;
16
16
  /**
17
17
  * The content type to set for the files in the source folder when uploading them to the target.
18
+ * Useful to override force content types for specific files.
18
19
  */
19
- contentType: string;
20
+ contentType?: string;
20
21
  /**
21
22
  * The cache settings to use for the uploaded source files when accessing them on the target path with the specified pattern.
22
23
  */
@@ -22,6 +22,7 @@ const getNuxtAppCustomAssetConfigs = (srcDir = undefined, rootDir = '.') => {
22
22
  aws_s3_deployment_1.CacheControl.sMaxAge(aws_cdk_lib_1.Duration.minutes(1)),
23
23
  ];
24
24
  return [
25
+ // File to detect current deployment revision to delete outdated files of old deployments
25
26
  {
26
27
  pattern: 'app-revision',
27
28
  source: customAssetsSourcePath,
@@ -35,20 +36,7 @@ const getNuxtAppCustomAssetConfigs = (srcDir = undefined, rootDir = '.') => {
35
36
  ],
36
37
  invalidateOnChange: true
37
38
  },
38
- {
39
- pattern: '*.txt',
40
- source: customAssetsSourcePath,
41
- target: customAssetsTargetPath,
42
- contentType: 'text/plain; charset=UTF-8',
43
- cacheControl: defaultCacheConfig,
44
- },
45
- {
46
- pattern: '*.xml',
47
- source: customAssetsSourcePath,
48
- target: customAssetsTargetPath,
49
- contentType: 'text/xml; charset=UTF-8',
50
- cacheControl: defaultCacheConfig,
51
- },
39
+ // Files for native app links
52
40
  {
53
41
  pattern: '.well-known/*',
54
42
  source: customAssetsSourcePath,
@@ -56,48 +44,15 @@ const getNuxtAppCustomAssetConfigs = (srcDir = undefined, rootDir = '.') => {
56
44
  contentType: 'application/json; charset=UTF-8',
57
45
  cacheControl: defaultCacheConfig,
58
46
  },
47
+ // E.g., robots.txt, ads.txt, sitemap.xml, *.js, manifest.webmanifest ...
48
+ // But exclude .gitignore and other hidden files
59
49
  {
60
- pattern: 'manifest.webmanifest',
50
+ pattern: '?*.*',
61
51
  source: customAssetsSourcePath,
62
52
  target: customAssetsTargetPath,
63
- contentType: 'application/manifest+json; charset=UTF-8',
53
+ contentType: undefined,
64
54
  cacheControl: defaultCacheConfig,
65
55
  },
66
- {
67
- pattern: '*.ico',
68
- source: customAssetsSourcePath,
69
- target: customAssetsTargetPath,
70
- contentType: 'image/x-icon',
71
- cacheControl: defaultCacheConfig
72
- },
73
- {
74
- pattern: '*.png',
75
- source: customAssetsSourcePath,
76
- target: customAssetsTargetPath,
77
- contentType: 'image/png',
78
- cacheControl: defaultCacheConfig
79
- },
80
- {
81
- pattern: '*.jpg',
82
- source: customAssetsSourcePath,
83
- target: customAssetsTargetPath,
84
- contentType: 'image/jpg',
85
- cacheControl: defaultCacheConfig
86
- },
87
- {
88
- pattern: '*.svg',
89
- source: customAssetsSourcePath,
90
- target: customAssetsTargetPath,
91
- contentType: 'image/svg+xml',
92
- cacheControl: defaultCacheConfig
93
- },
94
- {
95
- pattern: '*.js',
96
- source: customAssetsSourcePath,
97
- target: customAssetsTargetPath,
98
- contentType: 'application/javascript; charset=UTF-8',
99
- cacheControl: defaultCacheConfig,
100
- }
101
56
  ];
102
57
  };
103
58
  /**
@@ -116,28 +71,6 @@ const getNuxtAppBuildAssetConfigs = (rootDir = '.') => {
116
71
  aws_s3_deployment_1.CacheControl.fromString('immutable'),
117
72
  ];
118
73
  return [
119
- // Build Assets
120
- {
121
- pattern: '*.js',
122
- target: buildAssetsTargetPath,
123
- source: buildAssetsSourcePath,
124
- contentType: 'application/javascript; charset=UTF-8',
125
- cacheControl: defaultCacheConfig
126
- },
127
- {
128
- pattern: '*.js.map',
129
- target: buildAssetsTargetPath,
130
- source: buildAssetsSourcePath,
131
- contentType: 'application/json; charset=UTF-8',
132
- cacheControl: defaultCacheConfig
133
- },
134
- {
135
- pattern: '*.css',
136
- target: buildAssetsTargetPath,
137
- source: buildAssetsSourcePath,
138
- contentType: 'text/css; charset=UTF-8',
139
- cacheControl: defaultCacheConfig
140
- },
141
74
  {
142
75
  pattern: '*.html',
143
76
  target: buildAssetsTargetPath,
@@ -148,61 +81,11 @@ const getNuxtAppBuildAssetConfigs = (rootDir = '.') => {
148
81
  cacheControl: [aws_s3_deployment_1.CacheControl.setPublic(), aws_s3_deployment_1.CacheControl.sMaxAge(aws_cdk_lib_1.Duration.days(7))],
149
82
  invalidateOnChange: true
150
83
  },
151
- // Manifest created by legacy PWA module
152
- {
153
- pattern: 'manifest.*.json',
154
- target: buildAssetsTargetPath,
155
- source: buildAssetsSourcePath,
156
- contentType: 'application/json; charset=UTF-8',
157
- cacheControl: defaultCacheConfig
158
- },
159
- {
160
- pattern: '*.png',
161
- target: buildAssetsTargetPath,
162
- source: buildAssetsSourcePath,
163
- contentType: 'image/png',
164
- cacheControl: defaultCacheConfig
165
- },
166
- {
167
- pattern: '*.jpg',
168
- target: buildAssetsTargetPath,
169
- source: buildAssetsSourcePath,
170
- contentType: 'image/jpg',
171
- cacheControl: defaultCacheConfig
172
- },
173
- {
174
- pattern: '*.svg',
175
- target: buildAssetsTargetPath,
176
- source: buildAssetsSourcePath,
177
- contentType: 'image/svg+xml',
178
- cacheControl: defaultCacheConfig
179
- },
180
- {
181
- pattern: '*.eot',
182
- target: buildAssetsTargetPath,
183
- source: buildAssetsSourcePath,
184
- contentType: 'application/vnd.ms-fontobject',
185
- cacheControl: defaultCacheConfig
186
- },
187
- {
188
- pattern: '*.ttf',
189
- target: buildAssetsTargetPath,
190
- source: buildAssetsSourcePath,
191
- contentType: 'application/font-sfnt',
192
- cacheControl: defaultCacheConfig
193
- },
194
- {
195
- pattern: '*.woff',
196
- target: buildAssetsTargetPath,
197
- source: buildAssetsSourcePath,
198
- contentType: 'font/woff',
199
- cacheControl: defaultCacheConfig
200
- },
201
84
  {
202
- pattern: '*.woff2',
85
+ pattern: '*.*',
203
86
  target: buildAssetsTargetPath,
204
87
  source: buildAssetsSourcePath,
205
- contentType: 'font/woff2',
88
+ contentType: undefined,
206
89
  cacheControl: defaultCacheConfig
207
90
  }
208
91
  ];
@@ -217,4 +100,4 @@ const getNuxtAppStaticAssetConfigs = (srcDir = undefined, rootDir = '.') => {
217
100
  return [...getNuxtAppBuildAssetConfigs(rootDir), ...getNuxtAppCustomAssetConfigs(srcDir, rootDir)];
218
101
  };
219
102
  exports.getNuxtAppStaticAssetConfigs = getNuxtAppStaticAssetConfigs;
220
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnV4dC1hcHAtc3RhdGljLWFzc2V0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm51eHQtYXBwLXN0YXRpYy1hc3NldHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQTJEO0FBQzNELDZDQUFxQztBQW1DckM7Ozs7O0dBS0c7QUFDSCxNQUFNLDRCQUE0QixHQUFHLENBQUMsU0FBMkIsU0FBUyxFQUFFLFVBQWtCLEdBQUcsRUFBdUIsRUFBRTtJQUV0SCw0R0FBNEc7SUFDNUcsc0NBQXNDO0lBQ3RDLE1BQU0sc0JBQXNCLEdBQUcsR0FBRyxPQUFPLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQztJQUNoRixNQUFNLHNCQUFzQixHQUFHLEdBQUcsQ0FBQztJQUVuQyx3R0FBd0c7SUFDeEcseURBQXlEO0lBQ3pELE1BQU0sa0JBQWtCLEdBQUc7UUFDdkIsZ0NBQVksQ0FBQyxTQUFTLEVBQUU7UUFDeEIsZ0NBQVksQ0FBQyxNQUFNLENBQUMsc0JBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckMsZ0NBQVksQ0FBQyxPQUFPLENBQUMsc0JBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDNUMsQ0FBQztJQUVGLE9BQU87UUFDSDtZQUNJLE9BQU8sRUFBRSxjQUFjO1lBQ3ZCLE1BQU0sRUFBRSxzQkFBc0I7WUFDOUIsTUFBTSxFQUFFLHNCQUFzQjtZQUM5QixXQUFXLEVBQUUsMkJBQTJCO1lBQ3hDLCtGQUErRjtZQUMvRixZQUFZLEVBQUU7Z0JBQ1YsZ0NBQVksQ0FBQyxTQUFTLEVBQUU7Z0JBQ3hCLGdDQUFZLENBQUMsTUFBTSxDQUFDLHNCQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN6QyxnQ0FBWSxDQUFDLE9BQU8sQ0FBQyxzQkFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQzth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LEVBQUUscUJBQXFCO1lBQzdCLFdBQVcsRUFBRSwrQkFBK0I7WUFDNUMsWUFBWSxFQUFFLGtCQUFrQjtTQUNuQztRQUNEO1lBQ0ksT0FBTyxFQUFFLE9BQU87WUFDaEIsTUFBTSxFQUFFLHFCQUFxQjtZQUM3QixNQUFNLEVBQUUscUJBQXFCO1lBQzdCLFdBQVcsRUFBRSx1QkFBdUI7WUFDcEMsWUFBWSxFQUFFLGtCQUFrQjtTQUNuQztRQUNEO1lBQ0ksT0FBTyxFQUFFLFFBQVE7WUFDakIsTUFBTSxFQUFFLHFCQUFxQjtZQUM3QixNQUFNLEVBQUUscUJBQXFCO1lBQzdCLFdBQVcsRUFBRSxXQUFXO1lBQ3hCLFlBQVksRUFBRSxrQkFBa0I7U0FDbkM7UUFDRDtZQUNJLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLE1BQU0sRUFBRSxxQkFBcUI7WUFDN0IsTUFBTSxFQUFFLHFCQUFxQjtZQUM3QixXQUFXLEVBQUUsWUFBWTtZQUN6QixZQUFZLEVBQUUsa0JBQWtCO1NBQ25DO0tBQ0osQ0FBQTtBQUNMLENBQUMsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ0ksTUFBTSw0QkFBNEIsR0FBRyxDQUFDLFNBQTJCLFNBQVMsRUFBRSxVQUFrQixHQUFHLEVBQXVCLEVBQUU7SUFDN0gsT0FBTyxDQUFDLEdBQUcsMkJBQTJCLENBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRyw0QkFBNEIsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUN2RyxDQUFDLENBQUM7QUFGVyxRQUFBLDRCQUE0QixnQ0FFdkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NhY2hlQ29udHJvbH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zMy1kZXBsb3ltZW50XCI7XG5pbXBvcnQge0R1cmF0aW9ufSBmcm9tIFwiYXdzLWNkay1saWJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBTdGF0aWNBc3NldENvbmZpZyB7XG4gICAgLyoqXG4gICAgICogVGhlIGZpbGUgcGF0dGVybiBmb3IgdGhlIGluY29taW5nIHJlcXVlc3RzIHRoYXQgc2hvdWxkIGJlIGZvcndhcmRlZCB0byB0aGUgdGFyZ2V0IHBhdGggaW4gdGhlIHN0YXRpYyBhc3NldHMgUzMgYnVja2V0XG4gICAgICogd2l0aCB0aGUgYXBwcm9wcmlhdGUgY2FjaGUgYW5kIGNvbnRlbnQgc2V0dGluZ3MgZGVmaW5lZCBpbiB0aGUgc2FtZSBvYmplY3QuXG4gICAgICovXG4gICAgcGF0dGVybjogc3RyaW5nLFxuXG4gICAgLyoqXG4gICAgICogVGhlIGxvY2FsIGRpcmVjdG9yeSB0byB1cGxvYWQgdGhlIGZpbGVzIGZyb20uXG4gICAgICovXG4gICAgc291cmNlOiBzdHJpbmcsXG5cbiAgICAvKipcbiAgICAgKiBUaGUgcmVtb3RlIHBhdGggYXQgd2hpY2ggdG8gbWFrZSB0aGUgdXBsb2FkZWQgZmlsZXMgZnJvbSBzb3VyY2UgYWNjZXNzaWJsZS5cbiAgICAgKi9cbiAgICB0YXJnZXQ6IHN0cmluZyxcblxuICAgIC8qKlxuICAgICAqIFRoZSBjb250ZW50IHR5cGUgdG8gc2V0IGZvciB0aGUgZmlsZXMgaW4gdGhlIHNvdXJjZSBmb2xkZXIgd2hlbiB1cGxvYWRpbmcgdGhlbSB0byB0aGUgdGFyZ2V0LlxuICAgICAqL1xuICAgIGNvbnRlbnRUeXBlOiBzdHJpbmcsXG5cbiAgICAvKipcbiAgICAgKiBUaGUgY2FjaGUgc2V0dGluZ3MgdG8gdXNlIGZvciB0aGUgdXBsb2FkZWQgc291cmNlIGZpbGVzIHdoZW4gYWNjZXNzaW5nIHRoZW0gb24gdGhlIHRhcmdldCBwYXRoIHdpdGggdGhlIHNwZWNpZmllZCBwYXR0ZXJuLlxuICAgICAqL1xuICAgIGNhY2hlQ29udHJvbDogQ2FjaGVDb250cm9sW10sXG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIGludmFsaWRhdGUgdGhlIGZpbGVzIG1hdGNoaW5nIHRoZSBjb25maWcncyBwYXR0ZXJuIGluIHRoZSBkaXN0cmlidXRpb24ncyBlZGdlIGNhY2hlcyBhZnRlciB0aGUgZmlsZXMgYXJlIHVwbG9hZGVkIHRvIHRoZSBkZXN0aW5hdGlvbiBidWNrZXQuXG4gICAgICovXG4gICAgaW52YWxpZGF0ZU9uQ2hhbmdlPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIGN1c3RvbSBzdGF0aWMgYXNzZXRzIG9mIHRoZSBOdXh0IGFwcCB0aGF0IHNoYWxsIGJlIHB1YmxpY2x5IGF2YWlsYWJsZS5cbiAqXG4gKiBAcGFyYW0gc3JjRGlyIFRoZSBwYXRoIHRvIHRoZSBkaXJlY3Rvcnkgd2l0aGluIHRoZSByb290IGRpcmVjdG9yeSAoYHJvb3REaXJgKSBhdCB3aGljaCB0aGUgYHB1YmxpY2AgYXNzZXRzIGZvbGRlciBvZiB0aGUgTnV4dCBhcHAgaXMgbG9jYXRlZC5cbiAqIEBwYXJhbSByb290RGlyIFRoZSBwYXRoIHRvIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGUgTnV4dCBhcHAgYXQgd2hpY2ggdGhlIGAub3V0cHV0YCBidWlsZCBmb2xkZXIgaXMgbG9jYXRlZC5cbiAqL1xuY29uc3QgZ2V0TnV4dEFwcEN1c3RvbUFzc2V0Q29uZmlncyA9IChzcmNEaXI6IHN0cmluZ3x1bmRlZmluZWQgPSB1bmRlZmluZWQsIHJvb3REaXI6IHN0cmluZyA9ICcuJyk6IFN0YXRpY0Fzc2V0Q29uZmlnW10gPT4ge1xuXG4gICAgLy8gV2UgY29weSB0aGUgY3VzdG9tIGFzc2V0cyBmcm9tIHRoZSBzb3VyY2UgZGlyZWN0b3J5IHRvIHByZXZlbnQgb3ZlcnJpZGluZyB0aGUgYnVpbGQgYXNzZXRzIGNhY2hlIGJlaGF2aW9yXG4gICAgLy8gd2hlbiBjb3B5aW5nIGZyb20gb3V0cHV0cyBkaXJlY3RvcnlcbiAgICBjb25zdCBjdXN0b21Bc3NldHNTb3VyY2VQYXRoID0gYCR7cm9vdERpcn0ke3NyY0RpciA/IGAvJHtzcmNEaXJ9YCA6ICcnfS9wdWJsaWNgO1xuICAgIGNvbnN0IGN1c3RvbUFzc2V0c1RhcmdldFBhdGggPSAnLyc7XG5cbiAgICAvLyBDdXN0b20gYXNzZXRzIG1pZ2h0IG5vdCBiZSB2ZXJzaW9uZWQgd2hlcmVieSB3ZSB3YW50IHRvIHByZXZlbnQgYW55IGNhY2hpbmcgaXNzdWVzIHdoZW4gdXBkYXRpbmcgdGhlbVxuICAgIC8vIC0+IGNhY2hlIGZvciBvbmx5IDEgZGF5IG9uIENETiBhbmQgMSBtaW51dGUgb24gYnJvd3NlclxuICAgIGNvbnN0IGRlZmF1bHRDYWNoZUNvbmZpZyA9IFtcbiAgICAgICAgQ2FjaGVDb250cm9sLnNldFB1YmxpYygpLFxuICAgICAgICBDYWNoZUNvbnRyb2wubWF4QWdlKER1cmF0aW9uLmRheXMoMSkpLFxuICAgICAgICBDYWNoZUNvbnRyb2wuc01heEFnZShEdXJhdGlvbi5taW51dGVzKDEpKSxcbiAgICBdO1xuXG4gICAgcmV0dXJuIFtcbiAgICAgICAge1xuICAgICAgICAgICAgcGF0dGVybjogJ2FwcC1yZXZpc2lvbicsXG4gICAgICAgICAgICBzb3VyY2U6IGN1c3RvbUFzc2V0c1NvdXJjZVBhdGgsXG4gICAgICAgICAgICB0YXJnZXQ6IGN1c3RvbUFzc2V0c1RhcmdldFBhdGgsXG4gICAgICAgICAgICBjb250ZW50VHlwZTogJ3RleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgnLFxuICAgICAgICAgICAgLy8gTG9uZ2VyIGNhY2hlIGNvbnRyb2wgc2luY2Ugd2UgYXV0b21hdGljYWxseSBpbnZhbGlkYXRlIHRoZSByZXZpc2lvbiBmaWxlIG9uIGV2ZXJ5IGRlcGxveW1lbnRcbiAgICAgICAgICAgIGNhY2hlQ29udHJvbDogW1xuICAgICAgICAgICAgICAgIENhY2hlQ29udHJvbC5zZXRQdWJsaWMoKSxcbiAgICAgICAgICAgICAgICBDYWNoZUNvbnRyb2wubWF4QWdlKER1cmF0aW9uLnNlY29uZHMoMTApKSxcbiAgICAgICAgICAgICAgICBDYWNoZUNvbnRyb2wuc01heEFnZShEdXJhdGlvbi5kYXlzKDE0KSksXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgaW52YWxpZGF0ZU9uQ2hhbmdlOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHBhdHRlcm46ICcqLnR4dCcsIC8vIEUuZy4sIHJvYm90cy50eHQsIGFkcy50eHQsIC4uLlxuICAgICAgICAgICAgc291cmNlOiBjdXN0b21Bc3NldHNTb3VyY2VQYXRoLFxuICAgICAgICAgICAgdGFyZ2V0OiBjdXN0b21Bc3NldHNUYXJnZXRQYXRoLFxuICAgICAgICAgICAgY29udGVudFR5cGU6ICd0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04JyxcbiAgICAgICAgICAgIGNhY2hlQ29udHJvbDogZGVmYXVsdENhY2hlQ29uZmlnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwYXR0ZXJuOiAnKi54bWwnLCAvLyBFLmcuLCBzaXRlbWFwLnhtbCAuLi5cbiAgICAgICAgICAgIHNvdXJjZTogY3VzdG9tQXNzZXRzU291cmNlUGF0aCxcbiAgICAgICAgICAgIHRhcmdldDogY3VzdG9tQXNzZXRzVGFyZ2V0UGF0aCxcbiAgICAgICAgICAgIGNvbnRlbnRUeXBlOiAndGV4dC94bWw7IGNoYXJzZXQ9VVRGLTgnLFxuICAgICAgICAgICAgY2FjaGVDb250cm9sOiBkZWZhdWx0Q2FjaGVDb25maWcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHBhdHRlcm46ICcud2VsbC1rbm93bi8qJywgLy8gRmlsZXMgZm9yIG5hdGl2ZSBhcHAgbGlua3NcbiAgICAgICAgICAgIHNvdXJjZTogY3VzdG9tQXNzZXRzU291cmNlUGF0aCxcbiAgICAgICAgICAgIHRhcmdldDogY3VzdG9tQXNzZXRzVGFyZ2V0UGF0aCxcbiAgICAgICAgICAgIGNvbnRlbnRUeXBlOiAnYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD1VVEYtOCcsXG4gICAgICAgICAgICBjYWNoZUNvbnRyb2w6IGRlZmF1bHRDYWNoZUNvbmZpZyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcGF0dGVybjogJ21hbmlmZXN0LndlYm1hbmlmZXN0JywgLy8gTWFuaWZlc3QgY3JlYXRlZCBieSBQV0EgbW9kdWxlXG4gICAgICAgICAgICBzb3VyY2U6IGN1c3RvbUFzc2V0c1NvdXJjZVBhdGgsXG4gICAgICAgICAgICB0YXJnZXQ6IGN1c3RvbUFzc2V0c1RhcmdldFBhdGgsXG4gICAgICAgICAgICBjb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL21hbmlmZXN0K2pzb247IGNoYXJzZXQ9VVRGLTgnLFxuICAgICAgICAgICAgY2FjaGVDb250cm9sOiBkZWZhdWx0Q2FjaGVDb25maWcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHBhdHRlcm46ICcqLmljbycsIC8vIEZhdmljb25cbiAgICAgICAgICAgIHNvdXJjZTogY3VzdG9tQXNzZXRzU291cmNlUGF0aCxcbiAgICAgICAgICAgIHRhcmdldDogY3VzdG9tQXNzZXRzVGFyZ2V0UGF0aCxcbiAgICAgICAgICAgIGNvbnRlbnRUeXBlOiAnaW1hZ2UveC1pY29uJyxcbiAgICAgICAgICAgIGNhY2hlQ29udHJvbDogZGVmYXVsdENhY2hlQ29uZmlnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHBhdHRlcm46ICcqLnBuZycsXG4gICAgICAgICAgICBzb3VyY2U6IGN1c3RvbUFzc2V0c1NvdXJjZVBhdGgsXG4gICAgICAgICAgICB0YXJnZXQ6IGN1c3RvbUFzc2V0c1RhcmdldFBhdGgsXG4gICAgICAgICAgICBjb250ZW50VHlwZTogJ2ltYWdlL3BuZycsXG4gICAgICAgICAgICBjYWNoZUNvbnRyb2w6IGRlZmF1bHRDYWNoZUNvbmZpZ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwYXR0ZXJuOiAnKi5qcGcnLFxuICAgICAgICAgICAgc291cmNlOiBjdXN0b21Bc3NldHNTb3VyY2VQYXRoLFxuICAgICAgICAgICAgdGFyZ2V0OiBjdXN0b21Bc3NldHNUYXJnZXRQYXRoLFxuICAgICAgICAgICAgY29udGVudFR5cGU6ICdpbWFnZS9qcGcnLFxuICAgICAgICAgICAgY2FjaGVDb250cm9sOiBkZWZhdWx0Q2FjaGVDb25maWdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcGF0dGVybjogJyouc3ZnJyxcbiAgICAgICAgICAgIHNvdXJjZTogY3VzdG9tQXNzZXRzU291cmNlUGF0aCxcbiAgICAgICAgICAgIHRhcmdldDogY3VzdG9tQXNzZXRzVGFyZ2V0UGF0aCxcbiAgICAgICAgICAgIGNvbnRlbnRUeXBlOiAnaW1hZ2Uvc3ZnK3htbCcsXG4gICAgICAgICAgICBjYWNoZUNvbnRyb2w6IGRlZmF1bHRDYWNoZUNvbmZpZ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwYXR0ZXJuOiAnKi5qcycsXG4gICAgICAgICAgICBzb3VyY2U6IGN1c3RvbUFzc2V0c1NvdXJjZVBhdGgsXG4gICAgICAgICAgICB0YXJnZXQ6IGN1c3RvbUFzc2V0c1RhcmdldFBhdGgsXG4gICAgICAgICAgICBjb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL2phdmFzY3JpcHQ7IGNoYXJzZXQ9VVRGLTgnLFxuICAgICAgICAgICAgY2FjaGVDb250cm9sOiBkZWZhdWx0Q2FjaGVDb25maWcsXG4gICAgICAgIH1cbiAgICBdO1xufTtcblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIHN0YXRpYyBhc3NldHMgb2YgdGhlIE51eHQgYXBwIHRoYXQgYXJlIGdlbmVyYXRlZCBieSB0aGUgYnVpbGQgb2YgdGhlIGFwcC5cbiAqXG4gKiBAcGFyYW0gcm9vdERpciBUaGUgcGF0aCB0byB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhlIE51eHQgYXBwIGF0IHdoaWNoIHRoZSBgLm91dHB1dGAgYnVpbGQgZm9sZGVyIGlzIGxvY2F0ZWQuXG4gKi9cbmNvbnN0IGdldE51eHRBcHBCdWlsZEFzc2V0Q29uZmlncyA9IChyb290RGlyOiBzdHJpbmcgPSAnLicpOiBTdGF0aWNBc3NldENvbmZpZ1tdID0+IHtcblxuICAgIC8vIFRoZSBidWlsZCBhc3NldHMgcmVxdWlyZWQgZm9yIENTUiB0aGF0IGFyZSBnZW5lcmF0ZWQgYnkgJ251eHQgYnVpbGQnXG4gICAgY29uc3QgYnVpbGRBc3NldHNTb3VyY2VQYXRoID0gYCR7cm9vdERpcn0vLm91dHB1dC9wdWJsaWMvX251eHRgO1xuICAgIGNvbnN0IGJ1aWxkQXNzZXRzVGFyZ2V0UGF0aCA9ICgnL19udXh0LycpO1xuXG4gICAgLy8gQnVpbGQgYXNzZXRzIGFyZSBoYXNoZWQgd2hlcmVieSB0aGV5IGFyZSBpbW11dGFibGUgYW5kIGNhbiBiZSBjYWNoZWQgZm9yIGEgbG9uZyB0aW1lXG4gICAgY29uc3QgZGVmYXVsdENhY2hlQ29uZmlnID0gW1xuICAgICAgICBDYWNoZUNvbnRyb2wuc2V0UHVibGljKCksXG4gICAgICAgIENhY2hlQ29udHJvbC5tYXhBZ2UoRHVyYXRpb24uZGF5cygzNjUpKSxcbiAgICAgICAgQ2FjaGVDb250cm9sLmZyb21TdHJpbmcoJ2ltbXV0YWJsZScpLFxuICAgIF07XG5cbiAgICByZXR1cm4gW1xuXG4gICAgICAgIC8vIEJ1aWxkIEFzc2V0c1xuICAgICAgICB7XG4gICAgICAgICAgICBwYXR0ZXJuOiAnKi5qcycsXG4gICAgICAgICAgICB0YXJnZXQ6IGJ1aWxkQXNzZXRzVGFyZ2V0UGF0aCxcbiAgICAgICAgICAgIHNvdXJjZTogYnVpbGRBc3NldHNTb3VyY2VQYXRoLFxuICAgICAgICAgICAgY29udGVudFR5cGU6ICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0OyBjaGFyc2V0PVVURi04JyxcbiAgICAgICAgICAgIGNhY2hlQ29udHJvbDogZGVmYXVsdENhY2hlQ29uZmlnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHBhdHRlcm46ICcqLmpzLm1hcCcsXG4gICAgICAgICAgICB0YXJnZXQ6IGJ1aWxkQXNzZXRzVGFyZ2V0UGF0aCxcbiAgICAgICAgICAgIHNvdXJjZTogYnVpbGRBc3NldHNTb3VyY2VQYXRoLFxuICAgICAgICAgICAgY29udGVudFR5cGU6ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PVVURi04JyxcbiAgICAgICAgICAgIGNhY2hlQ29udHJvbDogZGVmYXVsdENhY2hlQ29uZmlnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHBhdHRlcm46ICcqLmNzcycsXG4gICAgICAgICAgICB0YXJnZXQ6IGJ1aWxkQXNzZXRzVGFyZ2V0UGF0aCxcbiAgICAgICAgICAgIHNvdXJjZTogYnVpbGRBc3NldHNTb3VyY2VQYXRoLFxuICAgICAgICAgICAgY29udGVudFR5cGU6ICd0ZXh0L2NzczsgY2hhcnNldD1VVEYtOCcsXG4gICAgICAgICAgICBjYWNoZUNvbnRyb2w6IGRlZmF1bHRDYWNoZUNvbmZpZ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwYXR0ZXJuOiAnKi5odG1sJyxcbiAgICAgICAgICAgIHRhcmdldDogYnVpbGRBc3NldHNUYXJnZXRQYXRoLFxuICAgICAgICAgICAgc291cmNlOiBidWlsZEFzc2V0c1NvdXJjZVBhdGgsXG4gICAgICAgICAgICBjb250ZW50VHlwZTogJ3RleHQvaHRtbDsgY2hhcnNldD1VVEYtOCcsXG4gICAgICAgICAgICAvLyBXZSBkbyBub3Qgd2FudCB0byBjYWNoZSBodG1sIGZpbGVzIG9uIHRoZSBicm93c2VyIGFzIHdlIHdhbnQgdG8gYmUgYWJsZSB0byBwdWJsaXNoIG5ldyBjaGFuZ2VzIHF1aWNrbHlcbiAgICAgICAgICAgIC8vIEhvd2V2ZXIsIHdlIGRvIGNhY2hlIHRoZSBodG1sIGZpbGVzIG9uIENsb3VkRnJvbnQgZm9yIGEgcGVyZm9ybWFuY2UgYm9vc3QgYW5kIGludmFsaWRhdGUgdGhlIGNhY2hlIG9uIGV2ZXJ5IGRlcGxveW1lbnRcbiAgICAgICAgICAgIGNhY2hlQ29udHJvbDogW0NhY2hlQ29udHJvbC5zZXRQdWJsaWMoKSwgQ2FjaGVDb250cm9sLnNNYXhBZ2UoRHVyYXRpb24uZGF5cyg3KSldLFxuICAgICAgICAgICAgaW52YWxpZGF0ZU9uQ2hhbmdlOiB0cnVlXG4gICAgICAgIH0sXG5cbiAgICAgICAgLy8gTWFuaWZlc3QgY3JlYXRlZCBieSBsZWdhY3kgUFdBIG1vZHVsZVxuICAgICAgICB7XG4gICAgICAgICAgICBwYXR0ZXJuOiAnbWFuaWZlc3QuKi5qc29uJyxcbiAgICAgICAgICAgIHRhcmdldDogYnVpbGRBc3NldHNUYXJnZXRQYXRoLFxuICAgICAgICAgICAgc291cmNlOiBidWlsZEFzc2V0c1NvdXJjZVBhdGgsXG4gICAgICAgICAgICBjb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9VVRGLTgnLFxuICAgICAgICAgICAgY2FjaGVDb250cm9sOiBkZWZhdWx0Q2FjaGVDb25maWdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcGF0dGVybjogJyoucG5nJyxcbiAgICAgICAgICAgIHRhcmdldDogYnVpbGRBc3NldHNUYXJnZXRQYXRoLFxuICAgICAgICAgICAgc291cmNlOiBidWlsZEFzc2V0c1NvdXJjZVBhdGgsXG4gICAgICAgICAgICBjb250ZW50VHlwZTogJ2ltYWdlL3BuZycsXG4gICAgICAgICAgICBjYWNoZUNvbnRyb2w6IGRlZmF1bHRDYWNoZUNvbmZpZ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwYXR0ZXJuOiAnKi5qcGcnLFxuICAgICAgICAgICAgdGFyZ2V0OiBidWlsZEFzc2V0c1RhcmdldFBhdGgsXG4gICAgICAgICAgICBzb3VyY2U6IGJ1aWxkQXNzZXRzU291cmNlUGF0aCxcbiAgICAgICAgICAgIGNvbnRlbnRUeXBlOiAnaW1hZ2UvanBnJyxcbiAgICAgICAgICAgIGNhY2hlQ29udHJvbDogZGVmYXVsdENhY2hlQ29uZmlnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHBhdHRlcm46ICcqLnN2ZycsXG4gICAgICAgICAgICB0YXJnZXQ6IGJ1aWxkQXNzZXRzVGFyZ2V0UGF0aCxcbiAgICAgICAgICAgIHNvdXJjZTogYnVpbGRBc3NldHNTb3VyY2VQYXRoLFxuICAgICAgICAgICAgY29udGVudFR5cGU6ICdpbWFnZS9zdmcreG1sJyxcbiAgICAgICAgICAgIGNhY2hlQ29udHJvbDogZGVmYXVsdENhY2hlQ29uZmlnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHBhdHRlcm46ICcqLmVvdCcsXG4gICAgICAgICAgICB0YXJnZXQ6IGJ1aWxkQXNzZXRzVGFyZ2V0UGF0aCxcbiAgICAgICAgICAgIHNvdXJjZTogYnVpbGRBc3NldHNTb3VyY2VQYXRoLFxuICAgICAgICAgICAgY29udGVudFR5cGU6ICdhcHBsaWNhdGlvbi92bmQubXMtZm9udG9iamVjdCcsXG4gICAgICAgICAgICBjYWNoZUNvbnRyb2w6IGRlZmF1bHRDYWNoZUNvbmZpZ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwYXR0ZXJuOiAnKi50dGYnLFxuICAgICAgICAgICAgdGFyZ2V0OiBidWlsZEFzc2V0c1RhcmdldFBhdGgsXG4gICAgICAgICAgICBzb3VyY2U6IGJ1aWxkQXNzZXRzU291cmNlUGF0aCxcbiAgICAgICAgICAgIGNvbnRlbnRUeXBlOiAnYXBwbGljYXRpb24vZm9udC1zZm50JyxcbiAgICAgICAgICAgIGNhY2hlQ29udHJvbDogZGVmYXVsdENhY2hlQ29uZmlnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHBhdHRlcm46ICcqLndvZmYnLFxuICAgICAgICAgICAgdGFyZ2V0OiBidWlsZEFzc2V0c1RhcmdldFBhdGgsXG4gICAgICAgICAgICBzb3VyY2U6IGJ1aWxkQXNzZXRzU291cmNlUGF0aCxcbiAgICAgICAgICAgIGNvbnRlbnRUeXBlOiAnZm9udC93b2ZmJyxcbiAgICAgICAgICAgIGNhY2hlQ29udHJvbDogZGVmYXVsdENhY2hlQ29uZmlnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHBhdHRlcm46ICcqLndvZmYyJyxcbiAgICAgICAgICAgIHRhcmdldDogYnVpbGRBc3NldHNUYXJnZXRQYXRoLFxuICAgICAgICAgICAgc291cmNlOiBidWlsZEFzc2V0c1NvdXJjZVBhdGgsXG4gICAgICAgICAgICBjb250ZW50VHlwZTogJ2ZvbnQvd29mZjInLFxuICAgICAgICAgICAgY2FjaGVDb250cm9sOiBkZWZhdWx0Q2FjaGVDb25maWdcbiAgICAgICAgfVxuICAgIF1cbn07XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBzdGF0aWMgYXNzZXRzIG9mIHRoZSBOdXh0IGFwcCB0aGF0IHNoYWxsIGJlIHB1YmxpY2x5IGF2YWlsYWJsZS5cbiAqXG4gKiBAcGFyYW0gc3JjRGlyIFRoZSBwYXRoIHRvIHRoZSBkaXJlY3Rvcnkgd2l0aGluIHRoZSByb290IGRpcmVjdG9yeSAoYHJvb3REaXJgKSBhdCB3aGljaCB0aGUgYHB1YmxpY2AgYXNzZXRzIGZvbGRlciBvZiB0aGUgTnV4dCBhcHAgaXMgbG9jYXRlZC5cbiAqIEBwYXJhbSByb290RGlyIFRoZSBwYXRoIHRvIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGUgTnV4dCBhcHAgYXQgd2hpY2ggdGhlIGAub3V0cHV0YCBidWlsZCBmb2xkZXIgaXMgbG9jYXRlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldE51eHRBcHBTdGF0aWNBc3NldENvbmZpZ3MgPSAoc3JjRGlyOiBzdHJpbmd8dW5kZWZpbmVkID0gdW5kZWZpbmVkLCByb290RGlyOiBzdHJpbmcgPSAnLicpOiBTdGF0aWNBc3NldENvbmZpZ1tdID0+IHtcbiAgICByZXR1cm4gWy4uLmdldE51eHRBcHBCdWlsZEFzc2V0Q29uZmlncyhyb290RGlyKSwgLi4uZ2V0TnV4dEFwcEN1c3RvbUFzc2V0Q29uZmlncyhzcmNEaXIsIHJvb3REaXIpXTtcbn07Il19
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnV4dC1hcHAtc3RhdGljLWFzc2V0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm51eHQtYXBwLXN0YXRpYy1hc3NldHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQTJEO0FBQzNELDZDQUFxQztBQW9DckM7Ozs7O0dBS0c7QUFDSCxNQUFNLDRCQUE0QixHQUFHLENBQUMsU0FBMkIsU0FBUyxFQUFFLFVBQWtCLEdBQUcsRUFBdUIsRUFBRTtJQUV0SCw0R0FBNEc7SUFDNUcsc0NBQXNDO0lBQ3RDLE1BQU0sc0JBQXNCLEdBQUcsR0FBRyxPQUFPLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQztJQUNoRixNQUFNLHNCQUFzQixHQUFHLEdBQUcsQ0FBQztJQUVuQyx3R0FBd0c7SUFDeEcseURBQXlEO0lBQ3pELE1BQU0sa0JBQWtCLEdBQUc7UUFDdkIsZ0NBQVksQ0FBQyxTQUFTLEVBQUU7UUFDeEIsZ0NBQVksQ0FBQyxNQUFNLENBQUMsc0JBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckMsZ0NBQVksQ0FBQyxPQUFPLENBQUMsc0JBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDNUMsQ0FBQztJQUVGLE9BQU87UUFFSCx5RkFBeUY7UUFDekY7WUFDSSxPQUFPLEVBQUUsY0FBYztZQUN2QixNQUFNLEVBQUUsc0JBQXNCO1lBQzlCLE1BQU0sRUFBRSxzQkFBc0I7WUFDOUIsV0FBVyxFQUFFLDJCQUEyQjtZQUN4QywrRkFBK0Y7WUFDL0YsWUFBWSxFQUFFO2dCQUNWLGdDQUFZLENBQUMsU0FBUyxFQUFFO2dCQUN4QixnQ0FBWSxDQUFDLE1BQU0sQ0FBQyxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDekMsZ0NBQVksQ0FBQyxPQUFPLENBQUMsc0JBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDMUM7WUFDRCxrQkFBa0IsRUFBRSxJQUFJO1NBQzNCO1FBRUQsNkJBQTZCO1FBQzdCO1lBQ0ksT0FBTyxFQUFFLGVBQWU7WUFDeEIsTUFBTSxFQUFFLHNCQUFzQjtZQUM5QixNQUFNLEVBQUUsc0JBQXNCO1lBQzlCLFdBQVcsRUFBRSxpQ0FBaUM7WUFDOUMsWUFBWSxFQUFFLGtCQUFrQjtTQUNuQztRQUVELHlFQUF5RTtRQUN6RSxnREFBZ0Q7UUFDaEQ7WUFDSSxPQUFPLEVBQUUsTUFBTTtZQUNmLE1BQU0sRUFBRSxzQkFBc0I7WUFDOUIsTUFBTSxFQUFFLHNCQUFzQjtZQUM5QixXQUFXLEVBQUUsU0FBUztZQUN0QixZQUFZLEVBQUUsa0JBQWtCO1NBQ25DO0tBQ0osQ0FBQztBQUNOLENBQUMsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLDJCQUEyQixHQUFHLENBQUMsVUFBa0IsR0FBRyxFQUF1QixFQUFFO0lBRS9FLHVFQUF1RTtJQUN2RSxNQUFNLHFCQUFxQixHQUFHLEdBQUcsT0FBTyx1QkFBdUIsQ0FBQztJQUNoRSxNQUFNLHFCQUFxQixHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFMUMsdUZBQXVGO0lBQ3ZGLE1BQU0sa0JBQWtCLEdBQUc7UUFDdkIsZ0NBQVksQ0FBQyxTQUFTLEVBQUU7UUFDeEIsZ0NBQVksQ0FBQyxNQUFNLENBQUMsc0JBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkMsZ0NBQVksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO0tBQ3ZDLENBQUM7SUFFRixPQUFPO1FBQ0g7WUFDSSxPQUFPLEVBQUUsUUFBUTtZQUNqQixNQUFNLEVBQUUscUJBQXFCO1lBQzdCLE1BQU0sRUFBRSxxQkFBcUI7WUFDN0IsV0FBVyxFQUFFLDBCQUEwQjtZQUN2Qyx5R0FBeUc7WUFDekcseUhBQXlIO1lBQ3pILFlBQVksRUFBRSxDQUFDLGdDQUFZLENBQUMsU0FBUyxFQUFFLEVBQUUsZ0NBQVksQ0FBQyxPQUFPLENBQUMsc0JBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoRixrQkFBa0IsRUFBRSxJQUFJO1NBQzNCO1FBQ0Q7WUFDSSxPQUFPLEVBQUUsS0FBSztZQUNkLE1BQU0sRUFBRSxxQkFBcUI7WUFDN0IsTUFBTSxFQUFFLHFCQUFxQjtZQUM3QixXQUFXLEVBQUUsU0FBUztZQUN0QixZQUFZLEVBQUUsa0JBQWtCO1NBQ25DO0tBQ0osQ0FBQTtBQUNMLENBQUMsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ0ksTUFBTSw0QkFBNEIsR0FBRyxDQUFDLFNBQTJCLFNBQVMsRUFBRSxVQUFrQixHQUFHLEVBQXVCLEVBQUU7SUFDN0gsT0FBTyxDQUFDLEdBQUcsMkJBQTJCLENBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRyw0QkFBNEIsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUN2RyxDQUFDLENBQUM7QUFGVyxRQUFBLDRCQUE0QixnQ0FFdkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NhY2hlQ29udHJvbH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zMy1kZXBsb3ltZW50XCI7XG5pbXBvcnQge0R1cmF0aW9ufSBmcm9tIFwiYXdzLWNkay1saWJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBTdGF0aWNBc3NldENvbmZpZyB7XG4gICAgLyoqXG4gICAgICogVGhlIGZpbGUgcGF0dGVybiBmb3IgdGhlIGluY29taW5nIHJlcXVlc3RzIHRoYXQgc2hvdWxkIGJlIGZvcndhcmRlZCB0byB0aGUgdGFyZ2V0IHBhdGggaW4gdGhlIHN0YXRpYyBhc3NldHMgUzMgYnVja2V0XG4gICAgICogd2l0aCB0aGUgYXBwcm9wcmlhdGUgY2FjaGUgYW5kIGNvbnRlbnQgc2V0dGluZ3MgZGVmaW5lZCBpbiB0aGUgc2FtZSBvYmplY3QuXG4gICAgICovXG4gICAgcGF0dGVybjogc3RyaW5nLFxuXG4gICAgLyoqXG4gICAgICogVGhlIGxvY2FsIGRpcmVjdG9yeSB0byB1cGxvYWQgdGhlIGZpbGVzIGZyb20uXG4gICAgICovXG4gICAgc291cmNlOiBzdHJpbmcsXG5cbiAgICAvKipcbiAgICAgKiBUaGUgcmVtb3RlIHBhdGggYXQgd2hpY2ggdG8gbWFrZSB0aGUgdXBsb2FkZWQgZmlsZXMgZnJvbSBzb3VyY2UgYWNjZXNzaWJsZS5cbiAgICAgKi9cbiAgICB0YXJnZXQ6IHN0cmluZyxcblxuICAgIC8qKlxuICAgICAqIFRoZSBjb250ZW50IHR5cGUgdG8gc2V0IGZvciB0aGUgZmlsZXMgaW4gdGhlIHNvdXJjZSBmb2xkZXIgd2hlbiB1cGxvYWRpbmcgdGhlbSB0byB0aGUgdGFyZ2V0LlxuICAgICAqIFVzZWZ1bCB0byBvdmVycmlkZSBmb3JjZSBjb250ZW50IHR5cGVzIGZvciBzcGVjaWZpYyBmaWxlcy5cbiAgICAgKi9cbiAgICBjb250ZW50VHlwZT86IHN0cmluZyxcblxuICAgIC8qKlxuICAgICAqIFRoZSBjYWNoZSBzZXR0aW5ncyB0byB1c2UgZm9yIHRoZSB1cGxvYWRlZCBzb3VyY2UgZmlsZXMgd2hlbiBhY2Nlc3NpbmcgdGhlbSBvbiB0aGUgdGFyZ2V0IHBhdGggd2l0aCB0aGUgc3BlY2lmaWVkIHBhdHRlcm4uXG4gICAgICovXG4gICAgY2FjaGVDb250cm9sOiBDYWNoZUNvbnRyb2xbXSxcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gaW52YWxpZGF0ZSB0aGUgZmlsZXMgbWF0Y2hpbmcgdGhlIGNvbmZpZydzIHBhdHRlcm4gaW4gdGhlIGRpc3RyaWJ1dGlvbidzIGVkZ2UgY2FjaGVzIGFmdGVyIHRoZSBmaWxlcyBhcmUgdXBsb2FkZWQgdG8gdGhlIGRlc3RpbmF0aW9uIGJ1Y2tldC5cbiAgICAgKi9cbiAgICBpbnZhbGlkYXRlT25DaGFuZ2U/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgY3VzdG9tIHN0YXRpYyBhc3NldHMgb2YgdGhlIE51eHQgYXBwIHRoYXQgc2hhbGwgYmUgcHVibGljbHkgYXZhaWxhYmxlLlxuICpcbiAqIEBwYXJhbSBzcmNEaXIgVGhlIHBhdGggdG8gdGhlIGRpcmVjdG9yeSB3aXRoaW4gdGhlIHJvb3QgZGlyZWN0b3J5IChgcm9vdERpcmApIGF0IHdoaWNoIHRoZSBgcHVibGljYCBhc3NldHMgZm9sZGVyIG9mIHRoZSBOdXh0IGFwcCBpcyBsb2NhdGVkLlxuICogQHBhcmFtIHJvb3REaXIgVGhlIHBhdGggdG8gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoZSBOdXh0IGFwcCBhdCB3aGljaCB0aGUgYC5vdXRwdXRgIGJ1aWxkIGZvbGRlciBpcyBsb2NhdGVkLlxuICovXG5jb25zdCBnZXROdXh0QXBwQ3VzdG9tQXNzZXRDb25maWdzID0gKHNyY0Rpcjogc3RyaW5nfHVuZGVmaW5lZCA9IHVuZGVmaW5lZCwgcm9vdERpcjogc3RyaW5nID0gJy4nKTogU3RhdGljQXNzZXRDb25maWdbXSA9PiB7XG5cbiAgICAvLyBXZSBjb3B5IHRoZSBjdXN0b20gYXNzZXRzIGZyb20gdGhlIHNvdXJjZSBkaXJlY3RvcnkgdG8gcHJldmVudCBvdmVycmlkaW5nIHRoZSBidWlsZCBhc3NldHMgY2FjaGUgYmVoYXZpb3JcbiAgICAvLyB3aGVuIGNvcHlpbmcgZnJvbSBvdXRwdXRzIGRpcmVjdG9yeVxuICAgIGNvbnN0IGN1c3RvbUFzc2V0c1NvdXJjZVBhdGggPSBgJHtyb290RGlyfSR7c3JjRGlyID8gYC8ke3NyY0Rpcn1gIDogJyd9L3B1YmxpY2A7XG4gICAgY29uc3QgY3VzdG9tQXNzZXRzVGFyZ2V0UGF0aCA9ICcvJztcblxuICAgIC8vIEN1c3RvbSBhc3NldHMgbWlnaHQgbm90IGJlIHZlcnNpb25lZCB3aGVyZWJ5IHdlIHdhbnQgdG8gcHJldmVudCBhbnkgY2FjaGluZyBpc3N1ZXMgd2hlbiB1cGRhdGluZyB0aGVtXG4gICAgLy8gLT4gY2FjaGUgZm9yIG9ubHkgMSBkYXkgb24gQ0ROIGFuZCAxIG1pbnV0ZSBvbiBicm93c2VyXG4gICAgY29uc3QgZGVmYXVsdENhY2hlQ29uZmlnID0gW1xuICAgICAgICBDYWNoZUNvbnRyb2wuc2V0UHVibGljKCksXG4gICAgICAgIENhY2hlQ29udHJvbC5tYXhBZ2UoRHVyYXRpb24uZGF5cygxKSksXG4gICAgICAgIENhY2hlQ29udHJvbC5zTWF4QWdlKER1cmF0aW9uLm1pbnV0ZXMoMSkpLFxuICAgIF07XG5cbiAgICByZXR1cm4gW1xuXG4gICAgICAgIC8vIEZpbGUgdG8gZGV0ZWN0IGN1cnJlbnQgZGVwbG95bWVudCByZXZpc2lvbiB0byBkZWxldGUgb3V0ZGF0ZWQgZmlsZXMgb2Ygb2xkIGRlcGxveW1lbnRzXG4gICAgICAgIHtcbiAgICAgICAgICAgIHBhdHRlcm46ICdhcHAtcmV2aXNpb24nLFxuICAgICAgICAgICAgc291cmNlOiBjdXN0b21Bc3NldHNTb3VyY2VQYXRoLFxuICAgICAgICAgICAgdGFyZ2V0OiBjdXN0b21Bc3NldHNUYXJnZXRQYXRoLFxuICAgICAgICAgICAgY29udGVudFR5cGU6ICd0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04JyxcbiAgICAgICAgICAgIC8vIExvbmdlciBjYWNoZSBjb250cm9sIHNpbmNlIHdlIGF1dG9tYXRpY2FsbHkgaW52YWxpZGF0ZSB0aGUgcmV2aXNpb24gZmlsZSBvbiBldmVyeSBkZXBsb3ltZW50XG4gICAgICAgICAgICBjYWNoZUNvbnRyb2w6IFtcbiAgICAgICAgICAgICAgICBDYWNoZUNvbnRyb2wuc2V0UHVibGljKCksXG4gICAgICAgICAgICAgICAgQ2FjaGVDb250cm9sLm1heEFnZShEdXJhdGlvbi5zZWNvbmRzKDEwKSksXG4gICAgICAgICAgICAgICAgQ2FjaGVDb250cm9sLnNNYXhBZ2UoRHVyYXRpb24uZGF5cygxNCkpLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGludmFsaWRhdGVPbkNoYW5nZTogdHJ1ZVxuICAgICAgICB9LFxuXG4gICAgICAgIC8vIEZpbGVzIGZvciBuYXRpdmUgYXBwIGxpbmtzXG4gICAgICAgIHtcbiAgICAgICAgICAgIHBhdHRlcm46ICcud2VsbC1rbm93bi8qJyxcbiAgICAgICAgICAgIHNvdXJjZTogY3VzdG9tQXNzZXRzU291cmNlUGF0aCxcbiAgICAgICAgICAgIHRhcmdldDogY3VzdG9tQXNzZXRzVGFyZ2V0UGF0aCxcbiAgICAgICAgICAgIGNvbnRlbnRUeXBlOiAnYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD1VVEYtOCcsIC8vIEV4cGxpY2l0bHkgcHJvdmlkZWQgYXMgdGhlc2UgZmlsZSB1c3VhbGx5IGhhdmUgbm8gZXh0ZW5zaW9uXG4gICAgICAgICAgICBjYWNoZUNvbnRyb2w6IGRlZmF1bHRDYWNoZUNvbmZpZyxcbiAgICAgICAgfSxcblxuICAgICAgICAvLyBFLmcuLCByb2JvdHMudHh0LCBhZHMudHh0LCBzaXRlbWFwLnhtbCwgKi5qcywgbWFuaWZlc3Qud2VibWFuaWZlc3QgLi4uXG4gICAgICAgIC8vIEJ1dCBleGNsdWRlIC5naXRpZ25vcmUgYW5kIG90aGVyIGhpZGRlbiBmaWxlc1xuICAgICAgICB7XG4gICAgICAgICAgICBwYXR0ZXJuOiAnPyouKicsXG4gICAgICAgICAgICBzb3VyY2U6IGN1c3RvbUFzc2V0c1NvdXJjZVBhdGgsXG4gICAgICAgICAgICB0YXJnZXQ6IGN1c3RvbUFzc2V0c1RhcmdldFBhdGgsXG4gICAgICAgICAgICBjb250ZW50VHlwZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgY2FjaGVDb250cm9sOiBkZWZhdWx0Q2FjaGVDb25maWcsXG4gICAgICAgIH0sXG4gICAgXTtcbn07XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBzdGF0aWMgYXNzZXRzIG9mIHRoZSBOdXh0IGFwcCB0aGF0IGFyZSBnZW5lcmF0ZWQgYnkgdGhlIGJ1aWxkIG9mIHRoZSBhcHAuXG4gKlxuICogQHBhcmFtIHJvb3REaXIgVGhlIHBhdGggdG8gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoZSBOdXh0IGFwcCBhdCB3aGljaCB0aGUgYC5vdXRwdXRgIGJ1aWxkIGZvbGRlciBpcyBsb2NhdGVkLlxuICovXG5jb25zdCBnZXROdXh0QXBwQnVpbGRBc3NldENvbmZpZ3MgPSAocm9vdERpcjogc3RyaW5nID0gJy4nKTogU3RhdGljQXNzZXRDb25maWdbXSA9PiB7XG5cbiAgICAvLyBUaGUgYnVpbGQgYXNzZXRzIHJlcXVpcmVkIGZvciBDU1IgdGhhdCBhcmUgZ2VuZXJhdGVkIGJ5ICdudXh0IGJ1aWxkJ1xuICAgIGNvbnN0IGJ1aWxkQXNzZXRzU291cmNlUGF0aCA9IGAke3Jvb3REaXJ9Ly5vdXRwdXQvcHVibGljL19udXh0YDtcbiAgICBjb25zdCBidWlsZEFzc2V0c1RhcmdldFBhdGggPSAoJy9fbnV4dC8nKTtcblxuICAgIC8vIEJ1aWxkIGFzc2V0cyBhcmUgaGFzaGVkIHdoZXJlYnkgdGhleSBhcmUgaW1tdXRhYmxlIGFuZCBjYW4gYmUgY2FjaGVkIGZvciBhIGxvbmcgdGltZVxuICAgIGNvbnN0IGRlZmF1bHRDYWNoZUNvbmZpZyA9IFtcbiAgICAgICAgQ2FjaGVDb250cm9sLnNldFB1YmxpYygpLFxuICAgICAgICBDYWNoZUNvbnRyb2wubWF4QWdlKER1cmF0aW9uLmRheXMoMzY1KSksXG4gICAgICAgIENhY2hlQ29udHJvbC5mcm9tU3RyaW5nKCdpbW11dGFibGUnKSxcbiAgICBdO1xuXG4gICAgcmV0dXJuIFtcbiAgICAgICAge1xuICAgICAgICAgICAgcGF0dGVybjogJyouaHRtbCcsXG4gICAgICAgICAgICB0YXJnZXQ6IGJ1aWxkQXNzZXRzVGFyZ2V0UGF0aCxcbiAgICAgICAgICAgIHNvdXJjZTogYnVpbGRBc3NldHNTb3VyY2VQYXRoLFxuICAgICAgICAgICAgY29udGVudFR5cGU6ICd0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgnLFxuICAgICAgICAgICAgLy8gV2UgZG8gbm90IHdhbnQgdG8gY2FjaGUgaHRtbCBmaWxlcyBvbiB0aGUgYnJvd3NlciBhcyB3ZSB3YW50IHRvIGJlIGFibGUgdG8gcHVibGlzaCBuZXcgY2hhbmdlcyBxdWlja2x5XG4gICAgICAgICAgICAvLyBIb3dldmVyLCB3ZSBkbyBjYWNoZSB0aGUgaHRtbCBmaWxlcyBvbiBDbG91ZEZyb250IGZvciBhIHBlcmZvcm1hbmNlIGJvb3N0IGFuZCBpbnZhbGlkYXRlIHRoZSBjYWNoZSBvbiBldmVyeSBkZXBsb3ltZW50XG4gICAgICAgICAgICBjYWNoZUNvbnRyb2w6IFtDYWNoZUNvbnRyb2wuc2V0UHVibGljKCksIENhY2hlQ29udHJvbC5zTWF4QWdlKER1cmF0aW9uLmRheXMoNykpXSxcbiAgICAgICAgICAgIGludmFsaWRhdGVPbkNoYW5nZTogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwYXR0ZXJuOiAnKi4qJyxcbiAgICAgICAgICAgIHRhcmdldDogYnVpbGRBc3NldHNUYXJnZXRQYXRoLFxuICAgICAgICAgICAgc291cmNlOiBidWlsZEFzc2V0c1NvdXJjZVBhdGgsXG4gICAgICAgICAgICBjb250ZW50VHlwZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgY2FjaGVDb250cm9sOiBkZWZhdWx0Q2FjaGVDb25maWdcbiAgICAgICAgfVxuICAgIF1cbn07XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBzdGF0aWMgYXNzZXRzIG9mIHRoZSBOdXh0IGFwcCB0aGF0IHNoYWxsIGJlIHB1YmxpY2x5IGF2YWlsYWJsZS5cbiAqXG4gKiBAcGFyYW0gc3JjRGlyIFRoZSBwYXRoIHRvIHRoZSBkaXJlY3Rvcnkgd2l0aGluIHRoZSByb290IGRpcmVjdG9yeSAoYHJvb3REaXJgKSBhdCB3aGljaCB0aGUgYHB1YmxpY2AgYXNzZXRzIGZvbGRlciBvZiB0aGUgTnV4dCBhcHAgaXMgbG9jYXRlZC5cbiAqIEBwYXJhbSByb290RGlyIFRoZSBwYXRoIHRvIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGUgTnV4dCBhcHAgYXQgd2hpY2ggdGhlIGAub3V0cHV0YCBidWlsZCBmb2xkZXIgaXMgbG9jYXRlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldE51eHRBcHBTdGF0aWNBc3NldENvbmZpZ3MgPSAoc3JjRGlyOiBzdHJpbmd8dW5kZWZpbmVkID0gdW5kZWZpbmVkLCByb290RGlyOiBzdHJpbmcgPSAnLicpOiBTdGF0aWNBc3NldENvbmZpZ1tdID0+IHtcbiAgICByZXR1cm4gWy4uLmdldE51eHRBcHBCdWlsZEFzc2V0Q29uZmlncyhyb290RGlyKSwgLi4uZ2V0TnV4dEFwcEN1c3RvbUFzc2V0Q29uZmlncyhzcmNEaXIsIHJvb3REaXIpXTtcbn07Il19
@@ -20,8 +20,9 @@ export interface StaticAssetConfig {
20
20
 
21
21
  /**
22
22
  * The content type to set for the files in the source folder when uploading them to the target.
23
+ * Useful to override force content types for specific files.
23
24
  */
24
- contentType: string,
25
+ contentType?: string,
25
26
 
26
27
  /**
27
28
  * The cache settings to use for the uploaded source files when accessing them on the target path with the specified pattern.
@@ -56,6 +57,8 @@ const getNuxtAppCustomAssetConfigs = (srcDir: string|undefined = undefined, root
56
57
  ];
57
58
 
58
59
  return [
60
+
61
+ // File to detect current deployment revision to delete outdated files of old deployments
59
62
  {
60
63
  pattern: 'app-revision',
61
64
  source: customAssetsSourcePath,
@@ -69,69 +72,25 @@ const getNuxtAppCustomAssetConfigs = (srcDir: string|undefined = undefined, root
69
72
  ],
70
73
  invalidateOnChange: true
71
74
  },
75
+
76
+ // Files for native app links
72
77
  {
73
- pattern: '*.txt', // E.g., robots.txt, ads.txt, ...
74
- source: customAssetsSourcePath,
75
- target: customAssetsTargetPath,
76
- contentType: 'text/plain; charset=UTF-8',
77
- cacheControl: defaultCacheConfig,
78
- },
79
- {
80
- pattern: '*.xml', // E.g., sitemap.xml ...
81
- source: customAssetsSourcePath,
82
- target: customAssetsTargetPath,
83
- contentType: 'text/xml; charset=UTF-8',
84
- cacheControl: defaultCacheConfig,
85
- },
86
- {
87
- pattern: '.well-known/*', // Files for native app links
78
+ pattern: '.well-known/*',
88
79
  source: customAssetsSourcePath,
89
80
  target: customAssetsTargetPath,
90
- contentType: 'application/json; charset=UTF-8',
81
+ contentType: 'application/json; charset=UTF-8', // Explicitly provided as these file usually have no extension
91
82
  cacheControl: defaultCacheConfig,
92
83
  },
84
+
85
+ // E.g., robots.txt, ads.txt, sitemap.xml, *.js, manifest.webmanifest ...
86
+ // But exclude .gitignore and other hidden files
93
87
  {
94
- pattern: 'manifest.webmanifest', // Manifest created by PWA module
88
+ pattern: '?*.*',
95
89
  source: customAssetsSourcePath,
96
90
  target: customAssetsTargetPath,
97
- contentType: 'application/manifest+json; charset=UTF-8',
91
+ contentType: undefined,
98
92
  cacheControl: defaultCacheConfig,
99
93
  },
100
- {
101
- pattern: '*.ico', // Favicon
102
- source: customAssetsSourcePath,
103
- target: customAssetsTargetPath,
104
- contentType: 'image/x-icon',
105
- cacheControl: defaultCacheConfig
106
- },
107
- {
108
- pattern: '*.png',
109
- source: customAssetsSourcePath,
110
- target: customAssetsTargetPath,
111
- contentType: 'image/png',
112
- cacheControl: defaultCacheConfig
113
- },
114
- {
115
- pattern: '*.jpg',
116
- source: customAssetsSourcePath,
117
- target: customAssetsTargetPath,
118
- contentType: 'image/jpg',
119
- cacheControl: defaultCacheConfig
120
- },
121
- {
122
- pattern: '*.svg',
123
- source: customAssetsSourcePath,
124
- target: customAssetsTargetPath,
125
- contentType: 'image/svg+xml',
126
- cacheControl: defaultCacheConfig
127
- },
128
- {
129
- pattern: '*.js',
130
- source: customAssetsSourcePath,
131
- target: customAssetsTargetPath,
132
- contentType: 'application/javascript; charset=UTF-8',
133
- cacheControl: defaultCacheConfig,
134
- }
135
94
  ];
136
95
  };
137
96
 
@@ -154,29 +113,6 @@ const getNuxtAppBuildAssetConfigs = (rootDir: string = '.'): StaticAssetConfig[]
154
113
  ];
155
114
 
156
115
  return [
157
-
158
- // Build Assets
159
- {
160
- pattern: '*.js',
161
- target: buildAssetsTargetPath,
162
- source: buildAssetsSourcePath,
163
- contentType: 'application/javascript; charset=UTF-8',
164
- cacheControl: defaultCacheConfig
165
- },
166
- {
167
- pattern: '*.js.map',
168
- target: buildAssetsTargetPath,
169
- source: buildAssetsSourcePath,
170
- contentType: 'application/json; charset=UTF-8',
171
- cacheControl: defaultCacheConfig
172
- },
173
- {
174
- pattern: '*.css',
175
- target: buildAssetsTargetPath,
176
- source: buildAssetsSourcePath,
177
- contentType: 'text/css; charset=UTF-8',
178
- cacheControl: defaultCacheConfig
179
- },
180
116
  {
181
117
  pattern: '*.html',
182
118
  target: buildAssetsTargetPath,
@@ -187,62 +123,11 @@ const getNuxtAppBuildAssetConfigs = (rootDir: string = '.'): StaticAssetConfig[]
187
123
  cacheControl: [CacheControl.setPublic(), CacheControl.sMaxAge(Duration.days(7))],
188
124
  invalidateOnChange: true
189
125
  },
190
-
191
- // Manifest created by legacy PWA module
192
- {
193
- pattern: 'manifest.*.json',
194
- target: buildAssetsTargetPath,
195
- source: buildAssetsSourcePath,
196
- contentType: 'application/json; charset=UTF-8',
197
- cacheControl: defaultCacheConfig
198
- },
199
- {
200
- pattern: '*.png',
201
- target: buildAssetsTargetPath,
202
- source: buildAssetsSourcePath,
203
- contentType: 'image/png',
204
- cacheControl: defaultCacheConfig
205
- },
206
- {
207
- pattern: '*.jpg',
208
- target: buildAssetsTargetPath,
209
- source: buildAssetsSourcePath,
210
- contentType: 'image/jpg',
211
- cacheControl: defaultCacheConfig
212
- },
213
- {
214
- pattern: '*.svg',
215
- target: buildAssetsTargetPath,
216
- source: buildAssetsSourcePath,
217
- contentType: 'image/svg+xml',
218
- cacheControl: defaultCacheConfig
219
- },
220
- {
221
- pattern: '*.eot',
222
- target: buildAssetsTargetPath,
223
- source: buildAssetsSourcePath,
224
- contentType: 'application/vnd.ms-fontobject',
225
- cacheControl: defaultCacheConfig
226
- },
227
- {
228
- pattern: '*.ttf',
229
- target: buildAssetsTargetPath,
230
- source: buildAssetsSourcePath,
231
- contentType: 'application/font-sfnt',
232
- cacheControl: defaultCacheConfig
233
- },
234
- {
235
- pattern: '*.woff',
236
- target: buildAssetsTargetPath,
237
- source: buildAssetsSourcePath,
238
- contentType: 'font/woff',
239
- cacheControl: defaultCacheConfig
240
- },
241
126
  {
242
- pattern: '*.woff2',
127
+ pattern: '*.*',
243
128
  target: buildAssetsTargetPath,
244
129
  source: buildAssetsSourcePath,
245
- contentType: 'font/woff2',
130
+ contentType: undefined,
246
131
  cacheControl: defaultCacheConfig
247
132
  }
248
133
  ]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cdk-nuxt",
3
- "version": "1.2.3",
3
+ "version": "1.3.0",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",