@bridgething/catalog 0.15.0 → 0.15.1
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/copy.d.ts +5 -6
- package/dist/copy.d.ts.map +1 -1
- package/dist/copy.js +6 -7
- package/dist/copy.js.map +1 -1
- package/dist/href.d.ts +2 -0
- package/dist/href.d.ts.map +1 -0
- package/dist/href.js +15 -0
- package/dist/href.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/copy.d.ts
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import type { CatalogAppListing } from './resolve.ts';
|
|
2
2
|
export declare const STORE_COPY: {
|
|
3
3
|
readonly appsTitle: "apps";
|
|
4
|
-
readonly
|
|
5
|
-
readonly
|
|
6
|
-
readonly
|
|
7
|
-
readonly
|
|
8
|
-
readonly communityHint: "from directory sources you have not added";
|
|
4
|
+
readonly appsEmpty: "no apps";
|
|
5
|
+
readonly communityTitle: "community";
|
|
6
|
+
readonly communityNote: "unreviewed";
|
|
7
|
+
readonly communityHint: "from sources you have not added";
|
|
9
8
|
readonly communityEmpty: "nothing here";
|
|
10
9
|
readonly suggestedTitle: "suggested sources";
|
|
11
10
|
readonly suggestedHint: "listed in the bridgething directory";
|
|
12
|
-
readonly suggestedEmpty: "
|
|
11
|
+
readonly suggestedEmpty: "none";
|
|
13
12
|
readonly needsFirmware: "needs newer firmware";
|
|
14
13
|
readonly unpublished: "not published yet";
|
|
15
14
|
};
|
package/dist/copy.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copy.d.ts","sourceRoot":"","sources":["../src/copy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"copy.d.ts","sourceRoot":"","sources":["../src/copy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,eAAO,MAAM,UAAU;;;;;;;;;;;;CAYb,CAAC;AAMX,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE7D;AAED,wBAAgB,kBAAkB,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAEtF;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAQlE"}
|
package/dist/copy.js
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
export const STORE_COPY = {
|
|
2
2
|
appsTitle: 'apps',
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
communityHint: 'from directory sources you have not added',
|
|
3
|
+
appsEmpty: 'no apps',
|
|
4
|
+
communityTitle: 'community',
|
|
5
|
+
communityNote: 'unreviewed',
|
|
6
|
+
communityHint: 'from sources you have not added',
|
|
8
7
|
communityEmpty: 'nothing here',
|
|
9
8
|
suggestedTitle: 'suggested sources',
|
|
10
9
|
suggestedHint: 'listed in the bridgething directory',
|
|
11
|
-
suggestedEmpty: '
|
|
10
|
+
suggestedEmpty: 'none',
|
|
12
11
|
needsFirmware: 'needs newer firmware',
|
|
13
12
|
unpublished: 'not published yet',
|
|
14
13
|
};
|
|
@@ -19,7 +18,7 @@ export function countLine(listings, sources) {
|
|
|
19
18
|
return `${listings} across ${plural(sources, 'source')}`;
|
|
20
19
|
}
|
|
21
20
|
export function failureLine(failures) {
|
|
22
|
-
return `${plural(failures, 'source')}
|
|
21
|
+
return `${plural(failures, 'source')} unreachable`;
|
|
23
22
|
}
|
|
24
23
|
export function installsLabel(installs) {
|
|
25
24
|
return installs > 0 ? plural(installs, 'install') : null;
|
package/dist/copy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copy.js","sourceRoot":"","sources":["../src/copy.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,SAAS,EAAE,MAAM;IACjB,
|
|
1
|
+
{"version":3,"file":"copy.js","sourceRoot":"","sources":["../src/copy.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,SAAS,EAAE,MAAM;IACjB,SAAS,EAAE,SAAS;IACpB,cAAc,EAAE,WAAW;IAC3B,aAAa,EAAE,YAAY;IAC3B,aAAa,EAAE,iCAAiC;IAChD,cAAc,EAAE,cAAc;IAC9B,cAAc,EAAE,mBAAmB;IACnC,aAAa,EAAE,qCAAqC;IACpD,cAAc,EAAE,MAAM;IACtB,aAAa,EAAE,sBAAsB;IACrC,WAAW,EAAE,mBAAmB;CACxB,CAAC;AAEX,SAAS,MAAM,CAAC,KAAa,EAAE,IAAY;IACzC,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,QAAgB,EAAE,OAAe;IACzD,OAAO,GAAG,QAAQ,WAAW,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC1C,OAAO,GAAG,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,OAAO,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,iBAAoC;IACrE,OAAO,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACrH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAA0B;IACtD,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IACxC,OAAO;QACL,MAAM,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC,IAAI;QAC1D,MAAM,EAAE,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI;QAC/C,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;QAC3C,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC;KAChC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;AACvD,CAAC"}
|
package/dist/href.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"href.d.ts","sourceRoot":"","sources":["../src/href.ts"],"names":[],"mappings":"AAEA,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAWvE"}
|
package/dist/href.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const WEB_PROTOCOLS = ['http:', 'https:'];
|
|
2
|
+
export function webHref(value) {
|
|
3
|
+
if (typeof value !== 'string')
|
|
4
|
+
return null;
|
|
5
|
+
const raw = value.trim();
|
|
6
|
+
if (raw.length === 0)
|
|
7
|
+
return null;
|
|
8
|
+
try {
|
|
9
|
+
return WEB_PROTOCOLS.includes(new URL(raw).protocol) ? raw : null;
|
|
10
|
+
}
|
|
11
|
+
catch {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=href.js.map
|
package/dist/href.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"href.js","sourceRoot":"","sources":["../src/href.ts"],"names":[],"mappings":"AAAA,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAE1C,MAAM,UAAU,OAAO,CAAC,KAAgC;IACtD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3C,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACzB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAElC,IAAI,CAAC;QACH,OAAO,aAAa,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export type { AppEntry, AppExtension, AppVersion, Catalog, Download, InstallCoun
|
|
|
2
2
|
export { CatalogValidationError, validate, validateInvariants, validateSchema } from './validate.ts';
|
|
3
3
|
export { EXTENSION_PERMISSION_PATTERN, EXTENSION_SOURCE_PATTERN, declaresExtension, describeExtensionPermission, describeExtensionPermissions, extensionOf, extensionRepoLabel, isExtensionPermission, } from './extension.ts';
|
|
4
4
|
export { releasedAtInstant, sortNewestFirst } from './versions.ts';
|
|
5
|
+
export { webHref } from './href.ts';
|
|
5
6
|
export { SETTINGS_PAGE_MIME, aggregate, compareVersions, fillsSlot, isListedWebapp, listedWebapps, newestCompatible, offersApp, pinsFrom, recommendedSources, satisfies, settingsOrigin, settingsOriginFor, slotCandidates, updates, versionCompatible, type CatalogAppListing, type CatalogAppUpdate, type ExtensionOffering, type InstalledWebapp, type WebappSlotName, } from './resolve.ts';
|
|
6
7
|
export { blendStoreListings, type StoreListings } from './blend.ts';
|
|
7
8
|
export { STORE_COPY, alsoAvailableLabel, countLine, failureLine, installsLabel, listingTraits } from './copy.ts';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,IAAI,EACJ,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAErG,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,iBAAiB,EACjB,2BAA2B,EAC3B,4BAA4B,EAC5B,WAAW,EACX,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEnE,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,eAAe,EACf,SAAS,EACT,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,QAAQ,EACR,kBAAkB,EAClB,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,OAAO,EACP,iBAAiB,EACjB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,cAAc,GACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,kBAAkB,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAEjH,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,YAAY,EACZ,eAAe,EACf,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,IAAI,EACJ,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAErG,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,iBAAiB,EACjB,2BAA2B,EAC3B,4BAA4B,EAC5B,WAAW,EACX,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEnE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,eAAe,EACf,SAAS,EACT,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,QAAQ,EACR,kBAAkB,EAClB,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,OAAO,EACP,iBAAiB,EACjB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,cAAc,GACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,kBAAkB,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAEjH,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,YAAY,EACZ,eAAe,EACf,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,cAAc,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { CatalogValidationError, validate, validateInvariants, validateSchema } from "./validate.js";
|
|
2
2
|
export { EXTENSION_PERMISSION_PATTERN, EXTENSION_SOURCE_PATTERN, declaresExtension, describeExtensionPermission, describeExtensionPermissions, extensionOf, extensionRepoLabel, isExtensionPermission, } from "./extension.js";
|
|
3
3
|
export { releasedAtInstant, sortNewestFirst } from "./versions.js";
|
|
4
|
+
export { webHref } from "./href.js";
|
|
4
5
|
export { SETTINGS_PAGE_MIME, aggregate, compareVersions, fillsSlot, isListedWebapp, listedWebapps, newestCompatible, offersApp, pinsFrom, recommendedSources, satisfies, settingsOrigin, settingsOriginFor, slotCandidates, updates, versionCompatible, } from "./resolve.js";
|
|
5
6
|
export { blendStoreListings } from "./blend.js";
|
|
6
7
|
export { STORE_COPY, alsoAvailableLabel, countLine, failureLine, installsLabel, listingTraits } from "./copy.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAErG,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,iBAAiB,EACjB,2BAA2B,EAC3B,4BAA4B,EAC5B,WAAW,EACX,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEnE,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,eAAe,EACf,SAAS,EACT,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,QAAQ,EACR,kBAAkB,EAClB,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,OAAO,EACP,iBAAiB,GAMlB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,kBAAkB,EAAsB,MAAM,YAAY,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAEjH,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,YAAY,EACZ,eAAe,GAShB,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAErG,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,iBAAiB,EACjB,2BAA2B,EAC3B,4BAA4B,EAC5B,WAAW,EACX,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEnE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,eAAe,EACf,SAAS,EACT,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,QAAQ,EACR,kBAAkB,EAClB,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,OAAO,EACP,iBAAiB,GAMlB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,kBAAkB,EAAsB,MAAM,YAAY,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAEjH,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,YAAY,EACZ,eAAe,GAShB,MAAM,cAAc,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bridgething/catalog",
|
|
3
|
-
"version": "0.15.
|
|
3
|
+
"version": "0.15.1",
|
|
4
4
|
"description": "The catalog.v1 schema, validator and resolution rules for the bridgething webapp store. Use it to publish a source or to write a client that reads one.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Joey Eamigh <55670930+JoeyEamigh@users.noreply.github.com> (https://github.com/JoeyEamigh)",
|