diff options
Diffstat (limited to 'tests/source-package-example')
-rw-r--r-- | tests/source-package-example/index.json | 154 |
1 files changed, 81 insertions, 73 deletions
diff --git a/tests/source-package-example/index.json b/tests/source-package-example/index.json index 7162dd7..9aa6e70 100644 --- a/tests/source-package-example/index.json +++ b/tests/source-package-example/index.json @@ -3,9 +3,9 @@ // Copyright (C) 2021, 2022 Wojtek Kosior <koszko@koszko.org> // Available under the terms of Creative Commons Zero v1.0 Universal. -// This is an example index.json file describing Hydrilla site content. As you -// can see, for storing site content information Hydrilla utilizes JSON with an -// additional extension in the form of '//' comments support. +// This is an example index.json file describing Hydrilla packages. As you can +// see, for storing this information Hydrilla utilizes JSON with an additional +// extension in the form of '//' comments support. // An index.json file conveys definitions of site resources and pattern->payload // mappings. The definitions may reference files under index.json's containing @@ -62,18 +62,15 @@ // will also belong here once they get implemented. "definitions": [ { - // Value of "type" can currently be one of: "resource" and - // "mapping". The one we have here, "resource", defines a list - // of injectable scripts that can be used as a payload or as a - // dependency of another "resource". In the future CSS style sheets - // and WASM modules will also be composite parts of a "resource" as - // scripts are now. - "type": "resource", + // Value of "type" can currently be one of: "resource", "mapping" + // and "mapping_and_resource" for a combined definition. The one we + // have here, "mapping", associates resources with pages on which + // they are to be used. + "type": "mapping", - // Used when referring to this resource in "dependencies" list of - // another resource or in "payload" field of a mapping. Should - // be consize and can only use a restricted set of characters. It - // has to match: [-0-9a-z]+ + // Used when referring to this mapping in "required_mappings" list + // of another item. Should be consize and can only use a restricted + // set of characters. It has to match: [-0-9a-z]+ "identifier": "helloapple", // "long_name" should be used to specify a user-friendly alternative @@ -96,26 +93,80 @@ // Different versions (e.g. 1.0 and 1.3) of the same resource can be // defined in separate index.json files. This makes it easy to // accidently cause an identifier clash. To help detect it, we allow - // each resource to have a UUID associated with it. Attempt to - // define multiple resources with the same identifier and different - // UUIDs will result in an error being reported. Defining multiple - // resources with different identifiers and the same UUID is + // each item to have a UUID associated with it. Attempt to define + // multiple mapping with the same identifier and different UUIDs + // will result in an error being reported. Defining multiple + // mappings with different identifiers and the same UUID is // disallowed for now (it may be later permitted if we consider it // good for some use-case). - // As of package source schema version 1.0, UUIDs are optional and + // As of package source schema version 2.0, UUIDs are optional and // can be omitted. + "uuid": "54d23bba-472e-42f5-9194-eaa24c0e3ee7", + + // Thanks to the "version" field (and "revision" field in case of + // "resource" or "mapping_and_resource", clients will know they have + // to update certain item after a new version has appeared in the + // repository. If multiple definitions of the same version of given + // item are provided to Hydrilla server, an error is generated. + // "version" differs from its counterpart in resource in that it has + // no accompanying revision number. For combined definitions with + // "mapping_and_resource" as type, the value of "revision" is + // appended as the last component of the resulting mapping's + // version. If type is simply "mapping", revision number is ignored. + "version": [2021, 11, 10], + + // A short, meaningful description of what the mapping does. + "description": "causes apple to get greeted on Hydrillabugs issue tracker", + + // If needed, a "comment" field can be added to provide some + // additional information. + // "comment": "this resource something something", + + // The "payloads" object specifies which payloads are to be applied + // to which URLs. + "payloads": { + // Each key should be a valid Haketilo URL pattern. + "https://hydrillabugs.koszko.org/***": { + // Should be the name of an existing resource. The resource + // may, but doesn't have to, be defined in the same + // index.json file. + "identifier": "helloapple" + }, + // More associations may follow. + "https://hachettebugs.koszko.org/***": { + "identifier": "helloapple" + } + } + }, { + // A "resource" item defines a list of injectable scripts that can + // be used as a payload or as a dependency of another "resource". In + // the future CSS style sheets and WASM modules will also be + // composite parts of a "resource" as scripts are now. + "type": "resource", + + // Has similar function to mapping's identifier. Used when + // referring to this resource in "dependencies" list of another + // resource or in "payload" field of a mapping. Should be consize + // and can only use a restricted set of characters. It has to match: + // [-0-9a-z]+ + // It can be the same as some mapping identifier (those are + // different entities and are treated separately). + "identifier": "helloapple", + + // "long name" and "uuid" have the same meaning as in the case of + // resources and "uuid" is also optional. UUIDs of a resource and a + // mapping can technically be the same but it is recommended to + // avoid even this kind of repetition. + "long_name": "Hello Apple", "uuid": "a6754dcb-58d8-4b7a-a245-24fd7ad4cd68", // Version should match the upstream version of the resource (e.g. a - // version of javascript library). Revision number starts as 1 for + // version of JavaScript library). Revision number starts as 1 for // each new resource version and gets incremented by 1 each time a - // modification to the packaging of this version is done. Hydrilla - // will allow multiple definitions of the same resource to load, as - // long as their versions differ. Thanks to the "version" and - // "revision" fields, clients will know they have to update certain - // resource after it has been updated. If multiple definitions of - // the same version of given resource are provided, an error is - // generated (even if those definitions differ by revision number). + // modification to the packaging of this version is done. + // If multiple definitions of the same version of given resource are + // provided to Hydrilla server, an error is generated (even if those + // definitions differ by revision number). "version": [2021, 11, 10], "revision": 1, @@ -123,16 +174,15 @@ // what it does. "description": "greets an apple", - // If needed, a "comment" field can be added to provide some - // additional information. - // "comment": "this resource something something", + // A comment, if necessary. + // "comment": "blah blah because bleh" // Resource's "dependencies" array shall contain names of other // resources that (in case of scripts at least) should get evaluated // on a page before this resource's own scripts. "dependencies": [{"identifier": "hello-message"}], - // Array of javascript files that belong to this resource. + // Array of JavaScript files that belong to this resource. "scripts": [ {"file": "hello.js"}, {"file": "bye.js"} @@ -148,48 +198,6 @@ // If "dependencies" is empty, it can also be omitted. // "dependencies": [], "scripts": [{"file": "message.js"}] - }, { - "type": "mapping", - - // Has similar function to resource's identifier. Should be consize - // and can only use a restricted set of characters. It has to match: - // [-0-9a-z]+ - // It can be the same as some resource identifier (those are - // different entities and are treated separately). - "identifier": "helloapple", - - // "long name" and "uuid" have the same meaning as in the case of - // resources and "uuid" is also optional. UUIDs of a resource and a - // mapping can technically be the same but it is recommended to - // avoid even this kind of repetition. - "long_name": "Hello Apple", - "uuid": "54d23bba-472e-42f5-9194-eaa24c0e3ee7", - - // "version" differs from its counterpart in resource in that it has - // no accompanying revision number. - "version": [2021, 11, 10], - - // A short, meaningful description of what the mapping does. - "description": "causes apple to get greeted on Hydrillabugs issue tracker", - - // A comment, if necessary. - // "comment": "blah blah because bleh" - - // The "payloads" object specifies which payloads are to be applied - // to which URLs. - "payloads": { - // Each key should be a valid Haketilo URL pattern. - "https://hydrillabugs.koszko.org/***": { - // Should be the name of an existing resource. The resource - // may, but doesn't have to, be defined in the same - // index.json file. - "identifier": "helloapple" - }, - // More associations may follow. - "https://hachettebugs.koszko.org/***": { - "identifier": "helloapple" - } - } } ], // We can also list additional files to include in the produced source |