«
Previous
|
Next
»
Revision 48a440fd
Added by koszko over 1 year ago
- ID 48a440fd1e13814f2adaa8a115baaf47e4c38c3c
- Parent f0e1d607
index.json | ||
---|---|---|
62 | 62 |
// will also belong here once they get implemented. |
63 | 63 |
"definitions": [ |
64 | 64 |
{ |
65 |
// Value of "type" can currently be one of: "resource" and |
|
66 |
// "mapping". The one we have here, "resource", defines a list |
|
67 |
// of injectable scripts that can be used as a payload or as a |
|
68 |
// dependency of another "resource". In the future CSS style sheets |
|
69 |
// and WASM modules will also be composite parts of a "resource" as |
|
70 |
// scripts are now. |
|
71 |
"type": "resource", |
|
65 |
// Value of "type" can currently be one of: "resource", "mapping" |
|
66 |
// and "mapping_and_resource" for a combined definition. The one we |
|
67 |
// have here, "mapping", associates resources with pages on which |
|
68 |
// they are to be used. |
|
69 |
"type": "mapping", |
|
72 | 70 |
|
73 |
// Used when referring to this resource in "dependencies" list of |
|
74 |
// another resource or in "payload" field of a mapping. Should |
|
75 |
// be consize and can only use a restricted set of characters. It |
|
76 |
// has to match: [-0-9a-z]+ |
|
71 |
// Used when referring to this mapping in "required_mappings" list |
|
72 |
// of another item. Should be consize and can only use a restricted |
|
73 |
// set of characters. It has to match: [-0-9a-z]+ |
|
77 | 74 |
"identifier": "helloapple", |
78 | 75 |
|
79 | 76 |
// "long_name" should be used to specify a user-friendly alternative |
... | ... | |
96 | 93 |
// Different versions (e.g. 1.0 and 1.3) of the same resource can be |
97 | 94 |
// defined in separate index.json files. This makes it easy to |
98 | 95 |
// accidently cause an identifier clash. To help detect it, we allow |
99 |
// each resource to have a UUID associated with it. Attempt to
|
|
100 |
// define multiple resources with the same identifier and different
|
|
101 |
// UUIDs will result in an error being reported. Defining multiple
|
|
102 |
// resources with different identifiers and the same UUID is
|
|
96 |
// each item to have a UUID associated with it. Attempt to define
|
|
97 |
// multiple mapping with the same identifier and different UUIDs
|
|
98 |
// will result in an error being reported. Defining multiple |
|
99 |
// mappings with different identifiers and the same UUID is
|
|
103 | 100 |
// disallowed for now (it may be later permitted if we consider it |
104 | 101 |
// good for some use-case). |
105 |
// As of package source schema version 1.0, UUIDs are optional and
|
|
102 |
// As of package source schema version 2.0, UUIDs are optional and
|
|
106 | 103 |
// can be omitted. |
104 |
"uuid": "54d23bba-472e-42f5-9194-eaa24c0e3ee7", |
|
105 |
|
|
106 |
// Thanks to the "version" field (and "revision" field in case of |
|
107 |
// "resource" or "mapping_and_resource", clients will know they have |
|
108 |
// to update certain item after a new version has appeared in the |
|
109 |
// repository. If multiple definitions of the same version of given |
|
110 |
// item are provided to Hydrilla server, an error is generated. |
|
111 |
// "version" differs from its counterpart in resource in that it has |
|
112 |
// no accompanying revision number. For combined definitions with |
|
113 |
// "mapping_and_resource" as type, the value of "revision" is |
|
114 |
// appended as the last component of the resulting mapping's |
|
115 |
// version. If type is simply "mapping", revision number is ignored. |
|
116 |
"version": [2021, 11, 10], |
|
117 |
|
|
118 |
// A short, meaningful description of what the mapping does. |
|
119 |
"description": "causes apple to get greeted on Hydrillabugs issue tracker", |
|
120 |
|
|
121 |
// If needed, a "comment" field can be added to provide some |
|
122 |
// additional information. |
|
123 |
// "comment": "this resource something something", |
|
124 |
|
|
125 |
// The "payloads" object specifies which payloads are to be applied |
|
126 |
// to which URLs. |
|
127 |
"payloads": { |
|
128 |
// Each key should be a valid Haketilo URL pattern. |
|
129 |
"https://hydrillabugs.koszko.org/***": { |
|
130 |
// Should be the name of an existing resource. The resource |
|
131 |
// may, but doesn't have to, be defined in the same |
|
132 |
// index.json file. |
|
133 |
"identifier": "helloapple" |
|
134 |
}, |
|
135 |
// More associations may follow. |
|
136 |
"https://hachettebugs.koszko.org/***": { |
|
137 |
"identifier": "helloapple" |
|
138 |
} |
|
139 |
} |
|
140 |
}, { |
|
141 |
// A "resource" item defines a list of injectable scripts that can |
|
142 |
// be used as a payload or as a dependency of another "resource". In |
|
143 |
// the future CSS style sheets and WASM modules will also be |
|
144 |
// composite parts of a "resource" as scripts are now. |
|
145 |
"type": "resource", |
|
146 |
|
|
147 |
// Has similar function to mapping's identifier. Used when |
|
148 |
// referring to this resource in "dependencies" list of another |
|
149 |
// resource or in "payload" field of a mapping. Should be consize |
|
150 |
// and can only use a restricted set of characters. It has to match: |
|
151 |
// [-0-9a-z]+ |
|
152 |
// It can be the same as some mapping identifier (those are |
|
153 |
// different entities and are treated separately). |
|
154 |
"identifier": "helloapple", |
|
155 |
|
|
156 |
// "long name" and "uuid" have the same meaning as in the case of |
|
157 |
// resources and "uuid" is also optional. UUIDs of a resource and a |
|
158 |
// mapping can technically be the same but it is recommended to |
|
159 |
// avoid even this kind of repetition. |
|
160 |
"long_name": "Hello Apple", |
|
107 | 161 |
"uuid": "a6754dcb-58d8-4b7a-a245-24fd7ad4cd68", |
108 | 162 |
|
109 | 163 |
// Version should match the upstream version of the resource (e.g. a |
110 | 164 |
// version of JavaScript library). Revision number starts as 1 for |
111 | 165 |
// each new resource version and gets incremented by 1 each time a |
112 |
// modification to the packaging of this version is done. Hydrilla |
|
113 |
// will allow multiple definitions of the same resource to load, as |
|
114 |
// long as their versions differ. Thanks to the "version" and |
|
115 |
// "revision" fields, clients will know they have to update certain |
|
116 |
// resource after it has been updated. If multiple definitions of |
|
117 |
// the same version of given resource are provided, an error is |
|
118 |
// generated (even if those definitions differ by revision number). |
|
166 |
// modification to the packaging of this version is done. |
|
167 |
// If multiple definitions of the same version of given resource are |
|
168 |
// provided to Hydrilla server, an error is generated (even if those |
|
169 |
// definitions differ by revision number). |
|
119 | 170 |
"version": [2021, 11, 10], |
120 | 171 |
"revision": 1, |
121 | 172 |
|
... | ... | |
123 | 174 |
// what it does. |
124 | 175 |
"description": "greets an apple", |
125 | 176 |
|
126 |
// If needed, a "comment" field can be added to provide some |
|
127 |
// additional information. |
|
128 |
// "comment": "this resource something something", |
|
177 |
// A comment, if necessary. |
|
178 |
// "comment": "blah blah because bleh" |
|
129 | 179 |
|
130 | 180 |
// Resource's "dependencies" array shall contain names of other |
131 | 181 |
// resources that (in case of scripts at least) should get evaluated |
... | ... | |
148 | 198 |
// If "dependencies" is empty, it can also be omitted. |
149 | 199 |
// "dependencies": [], |
150 | 200 |
"scripts": [{"file": "message.js"}] |
151 |
}, { |
|
152 |
"type": "mapping", |
|
153 |
|
|
154 |
// Has similar function to resource's identifier. Should be consize |
|
155 |
// and can only use a restricted set of characters. It has to match: |
|
156 |
// [-0-9a-z]+ |
|
157 |
// It can be the same as some resource identifier (those are |
|
158 |
// different entities and are treated separately). |
|
159 |
"identifier": "helloapple", |
|
160 |
|
|
161 |
// "long name" and "uuid" have the same meaning as in the case of |
|
162 |
// resources and "uuid" is also optional. UUIDs of a resource and a |
|
163 |
// mapping can technically be the same but it is recommended to |
|
164 |
// avoid even this kind of repetition. |
|
165 |
"long_name": "Hello Apple", |
|
166 |
"uuid": "54d23bba-472e-42f5-9194-eaa24c0e3ee7", |
|
167 |
|
|
168 |
// "version" differs from its counterpart in resource in that it has |
|
169 |
// no accompanying revision number. |
|
170 |
"version": [2021, 11, 10], |
|
171 |
|
|
172 |
// A short, meaningful description of what the mapping does. |
|
173 |
"description": "causes apple to get greeted on Hydrillabugs issue tracker", |
|
174 |
|
|
175 |
// A comment, if necessary. |
|
176 |
// "comment": "blah blah because bleh" |
|
177 |
|
|
178 |
// The "payloads" object specifies which payloads are to be applied |
|
179 |
// to which URLs. |
|
180 |
"payloads": { |
|
181 |
// Each key should be a valid Haketilo URL pattern. |
|
182 |
"https://hydrillabugs.koszko.org/***": { |
|
183 |
// Should be the name of an existing resource. The resource |
|
184 |
// may, but doesn't have to, be defined in the same |
|
185 |
// index.json file. |
|
186 |
"identifier": "helloapple" |
|
187 |
}, |
|
188 |
// More associations may follow. |
|
189 |
"https://hachettebugs.koszko.org/***": { |
|
190 |
"identifier": "helloapple" |
|
191 |
} |
|
192 |
} |
|
193 | 201 |
} |
194 | 202 |
], |
195 | 203 |
// We can also list additional files to include in the produced source |
Also available in: Unified diff
reorder item definitions (put mapping first)