quicktype-core 23.0.169 → 23.0.171
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/index.js +0 -2
- package/dist/input/FetchingJSONSchemaStore.js +2 -3
- package/dist/input/Inputs.js +0 -1
- package/dist/input/io/NodeIO.js +6 -6
- package/dist/language/All.js +0 -1
- package/dist/language/Python/PythonRenderer.js +9 -4
- package/dist/language/Python/language.d.ts +1 -0
- package/dist/language/Python/language.js +8 -2
- package/dist/support/Acronyms.const.d.ts +1 -0
- package/dist/support/Acronyms.const.js +1100 -0
- package/dist/support/Acronyms.d.ts +9 -2
- package/dist/support/Acronyms.js +7 -1105
- package/dist/support/Strings.js +4 -4
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -89,11 +89,9 @@ Object.defineProperty(exports, "UnionType", { enumerable: true, get: function ()
|
|
|
89
89
|
Object.defineProperty(exports, "ObjectType", { enumerable: true, get: function () { return Type_1.ObjectType; } });
|
|
90
90
|
var get_stream_1 = require("./input/io/get-stream");
|
|
91
91
|
Object.defineProperty(exports, "getStream", { enumerable: true, get: function () { return get_stream_1.getStream; } });
|
|
92
|
-
// eslint-disable-next-line import/no-cycle
|
|
93
92
|
var NodeIO_1 = require("./input/io/NodeIO");
|
|
94
93
|
Object.defineProperty(exports, "readableFromFileOrURL", { enumerable: true, get: function () { return NodeIO_1.readableFromFileOrURL; } });
|
|
95
94
|
Object.defineProperty(exports, "readFromFileOrURL", { enumerable: true, get: function () { return NodeIO_1.readFromFileOrURL; } });
|
|
96
|
-
// eslint-disable-next-line import/no-cycle
|
|
97
95
|
var FetchingJSONSchemaStore_1 = require("./input/FetchingJSONSchemaStore");
|
|
98
96
|
Object.defineProperty(exports, "FetchingJSONSchemaStore", { enumerable: true, get: function () { return FetchingJSONSchemaStore_1.FetchingJSONSchemaStore; } });
|
|
99
97
|
var JSONSchemaStore_1 = require("./input/JSONSchemaStore");
|
|
@@ -10,8 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.FetchingJSONSchemaStore = void 0;
|
|
13
|
-
|
|
14
|
-
const __1 = require("..");
|
|
13
|
+
const Support_1 = require("../support/Support");
|
|
15
14
|
const NodeIO_1 = require("./io/NodeIO");
|
|
16
15
|
const JSONSchemaStore_1 = require("./JSONSchemaStore");
|
|
17
16
|
class FetchingJSONSchemaStore extends JSONSchemaStore_1.JSONSchemaStore {
|
|
@@ -22,7 +21,7 @@ class FetchingJSONSchemaStore extends JSONSchemaStore_1.JSONSchemaStore {
|
|
|
22
21
|
fetch(address) {
|
|
23
22
|
return __awaiter(this, void 0, void 0, function* () {
|
|
24
23
|
// console.log(`Fetching ${address}`);
|
|
25
|
-
return (0,
|
|
24
|
+
return (0, Support_1.parseJSON)(yield (0, NodeIO_1.readFromFileOrURL)(address, this._httpHeaders), "JSON Schema", address);
|
|
26
25
|
});
|
|
27
26
|
}
|
|
28
27
|
}
|
package/dist/input/Inputs.js
CHANGED
|
@@ -13,7 +13,6 @@ exports.InputData = exports.jsonInputForTargetLanguage = exports.JSONInput = voi
|
|
|
13
13
|
const collection_utils_1 = require("collection-utils");
|
|
14
14
|
const Description_1 = require("../attributes/Description");
|
|
15
15
|
const TypeNames_1 = require("../attributes/TypeNames");
|
|
16
|
-
// eslint-disable-next-line import/no-cycle
|
|
17
16
|
const All_1 = require("../language/All");
|
|
18
17
|
const Messages_1 = require("../Messages");
|
|
19
18
|
const Support_1 = require("../support/Support");
|
package/dist/input/io/NodeIO.js
CHANGED
|
@@ -42,8 +42,8 @@ const ts_necessities_1 = require("@glideapps/ts-necessities");
|
|
|
42
42
|
const browser_or_node_1 = require("browser-or-node");
|
|
43
43
|
const cross_fetch_1 = __importDefault(require("cross-fetch"));
|
|
44
44
|
const is_url_1 = __importDefault(require("is-url"));
|
|
45
|
-
|
|
46
|
-
const
|
|
45
|
+
const Messages_1 = require("../../Messages");
|
|
46
|
+
const Support_1 = require("../../support/Support");
|
|
47
47
|
const get_stream_1 = require("./get-stream");
|
|
48
48
|
// Only use cross-fetch in CI
|
|
49
49
|
// FIXME: type global
|
|
@@ -57,7 +57,7 @@ function parseHeaders(httpHeaders) {
|
|
|
57
57
|
if (httpHeader !== undefined && httpHeader.length > 0) {
|
|
58
58
|
const split = httpHeader.indexOf(":");
|
|
59
59
|
if (split < 0) {
|
|
60
|
-
return (0,
|
|
60
|
+
return (0, Support_1.panic)(`Could not parse HTTP header "${httpHeader}".`);
|
|
61
61
|
}
|
|
62
62
|
const key = httpHeader.slice(0, split).trim();
|
|
63
63
|
const value = httpHeader.slice(split + 1).trim();
|
|
@@ -88,9 +88,9 @@ function readableFromFileOrURL(fileOrURL, httpHeaders) {
|
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
90
|
catch (e) {
|
|
91
|
-
return (0,
|
|
91
|
+
return (0, Messages_1.messageError)("MiscReadError", { fileOrURL, message: (0, ts_necessities_1.exceptionToString)(e) });
|
|
92
92
|
}
|
|
93
|
-
return (0,
|
|
93
|
+
return (0, Messages_1.messageError)("DriverInputFileDoesNotExist", { filename: fileOrURL });
|
|
94
94
|
});
|
|
95
95
|
}
|
|
96
96
|
exports.readableFromFileOrURL = readableFromFileOrURL;
|
|
@@ -101,7 +101,7 @@ function readFromFileOrURL(fileOrURL, httpHeaders) {
|
|
|
101
101
|
return yield (0, get_stream_1.getStream)(readable);
|
|
102
102
|
}
|
|
103
103
|
catch (e) {
|
|
104
|
-
return (0,
|
|
104
|
+
return (0, Messages_1.messageError)("MiscReadError", { fileOrURL, message: (0, ts_necessities_1.exceptionToString)(e) });
|
|
105
105
|
}
|
|
106
106
|
});
|
|
107
107
|
}
|
package/dist/language/All.js
CHANGED
|
@@ -13,7 +13,6 @@ const Golang_1 = require("./Golang");
|
|
|
13
13
|
const Haskell_1 = require("./Haskell");
|
|
14
14
|
const Java_1 = require("./Java");
|
|
15
15
|
const JavaScript_1 = require("./JavaScript");
|
|
16
|
-
// eslint-disable-next-line import/no-cycle
|
|
17
16
|
const JavaScriptPropTypes_1 = require("./JavaScriptPropTypes");
|
|
18
17
|
const JSONSchema_1 = require("./JSONSchema");
|
|
19
18
|
const Kotlin_1 = require("./Kotlin");
|
|
@@ -99,7 +99,9 @@ class PythonRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
|
|
|
99
99
|
const memberTypes = Array.from(nonNulls).map(m => this.pythonType(m));
|
|
100
100
|
if (hasNull !== null) {
|
|
101
101
|
let rest = [];
|
|
102
|
-
if (!this.getAlphabetizeProperties() &&
|
|
102
|
+
if (!this.getAlphabetizeProperties() &&
|
|
103
|
+
(this.pyOptions.features.dataClasses || this.pyOptions.pydanticBaseModel) &&
|
|
104
|
+
_isRootTypeDef) {
|
|
103
105
|
// Only push "= None" if this is a root level type def
|
|
104
106
|
// otherwise we may get type defs like List[Optional[int] = None]
|
|
105
107
|
// which are invalid
|
|
@@ -134,6 +136,9 @@ class PythonRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
|
|
|
134
136
|
}
|
|
135
137
|
declarationLine(t) {
|
|
136
138
|
if (t instanceof Type_1.ClassType) {
|
|
139
|
+
if (this.pyOptions.pydanticBaseModel) {
|
|
140
|
+
return ["class ", this.nameForNamedType(t), "(", this.withImport("pydantic", "BaseModel"), "):"];
|
|
141
|
+
}
|
|
137
142
|
return ["class ", this.nameForNamedType(t), ":"];
|
|
138
143
|
}
|
|
139
144
|
if (t instanceof Type_1.EnumType) {
|
|
@@ -149,7 +154,7 @@ class PythonRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
|
|
|
149
154
|
this.declaredTypes.add(t);
|
|
150
155
|
}
|
|
151
156
|
emitClassMembers(t) {
|
|
152
|
-
if (this.pyOptions.features.dataClasses)
|
|
157
|
+
if (this.pyOptions.features.dataClasses || this.pyOptions.pydanticBaseModel)
|
|
153
158
|
return;
|
|
154
159
|
const args = [];
|
|
155
160
|
this.forEachClassProperty(t, "none", (name, _, cp) => {
|
|
@@ -179,7 +184,7 @@ class PythonRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
|
|
|
179
184
|
return this.typeHint(" -> ", this.withTyping(type));
|
|
180
185
|
}
|
|
181
186
|
sortClassProperties(properties, propertyNames) {
|
|
182
|
-
if (this.pyOptions.features.dataClasses) {
|
|
187
|
+
if (this.pyOptions.features.dataClasses || this.pyOptions.pydanticBaseModel) {
|
|
183
188
|
return (0, collection_utils_1.mapSortBy)(properties, (p) => {
|
|
184
189
|
return (p.type instanceof Type_1.UnionType && (0, TypeUtils_1.nullableFromUnion)(p.type) != null) || p.isOptional ? 1 : 0;
|
|
185
190
|
});
|
|
@@ -189,7 +194,7 @@ class PythonRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
|
|
|
189
194
|
}
|
|
190
195
|
}
|
|
191
196
|
emitClass(t) {
|
|
192
|
-
if (this.pyOptions.features.dataClasses) {
|
|
197
|
+
if (this.pyOptions.features.dataClasses && !this.pyOptions.pydanticBaseModel) {
|
|
193
198
|
this.emitLine("@", this.withImport("dataclasses", "dataclass"));
|
|
194
199
|
}
|
|
195
200
|
this.declareType(t, () => {
|
|
@@ -13,6 +13,7 @@ export declare const pythonOptions: {
|
|
|
13
13
|
features: EnumOption<PythonFeatures>;
|
|
14
14
|
justTypes: BooleanOption;
|
|
15
15
|
nicePropertyNames: BooleanOption;
|
|
16
|
+
pydanticBaseModel: BooleanOption;
|
|
16
17
|
};
|
|
17
18
|
export declare class PythonTargetLanguage extends TargetLanguage {
|
|
18
19
|
protected getOptions(): Array<Option<FixMeOptionsAnyType>>;
|
|
@@ -14,11 +14,17 @@ exports.pythonOptions = {
|
|
|
14
14
|
["3.7", { typeHints: true, dataClasses: true }]
|
|
15
15
|
], "3.6"),
|
|
16
16
|
justTypes: new RendererOptions_1.BooleanOption("just-types", "Classes only", false),
|
|
17
|
-
nicePropertyNames: new RendererOptions_1.BooleanOption("nice-property-names", "Transform property names to be Pythonic", true)
|
|
17
|
+
nicePropertyNames: new RendererOptions_1.BooleanOption("nice-property-names", "Transform property names to be Pythonic", true),
|
|
18
|
+
pydanticBaseModel: new RendererOptions_1.BooleanOption("pydantic-base-model", "Uses pydantic BaseModel", false)
|
|
18
19
|
};
|
|
19
20
|
class PythonTargetLanguage extends TargetLanguage_1.TargetLanguage {
|
|
20
21
|
getOptions() {
|
|
21
|
-
return [
|
|
22
|
+
return [
|
|
23
|
+
exports.pythonOptions.features,
|
|
24
|
+
exports.pythonOptions.justTypes,
|
|
25
|
+
exports.pythonOptions.nicePropertyNames,
|
|
26
|
+
exports.pythonOptions.pydanticBaseModel
|
|
27
|
+
];
|
|
22
28
|
}
|
|
23
29
|
get stringTypeMapping() {
|
|
24
30
|
const mapping = new Map();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const acronyms: readonly ["aaa", "aabb", "aac", "aal", "aalc", "aarp", "abac", "abcl", "abi", "abm", "abr", "ac", "acd", "ack", "acl", "acm", "acme", "acp", "acpi", "acr", "adb", "adc", "adccp", "ado", "adsl", "adt", "ae", "aes", "af", "afp", "agp", "ai", "aix", "alac", "algol", "alsa", "alu", "amd", "amoled", "amqp", "amr", "ann", "ansi", "aop", "apci", "api", "apic", "apipa", "apl", "apr", "arin", "aros", "arp", "arpa", "arpanet", "ascii", "aset", "asg", "asic", "asimo", "aslr", "asm", "asmp", "asp", "asr", "assp", "ast", "ata", "atag", "atapi", "atm", "av", "avc", "avi", "awfl", "awk", "awt", "bal", "bam", "bbp", "bbs", "bcd", "bcnf", "beep", "ber", "bfd", "bfs", "bft", "bgp", "bi", "binac", "bios", "bjt", "bmp", "bnc", "boinc", "bom", "bootp", "bpdu", "bpel", "bpl", "bpm", "brm", "brms", "brr", "brs", "bsa", "bsb", "bsd", "bss", "bt", "bw", "byod", "ca", "cad", "cae", "cai", "caid", "captcha", "caq", "cd", "cde", "cdfs", "cdma", "cdn", "cdp", "cdsa", "cert", "ces", "cf", "cfd", "cfg", "cg", "cga", "cgi", "cgt", "chs", "cidr", "cifs", "cim", "cio", "cir", "cisc", "cjk", "cjkv", "cli", "clr", "cm", "cmdb", "cmmi", "cmo", "cmos", "cms", "cn", "cnc", "cng", "cnr", "cobol", "com", "corba", "cots", "cpa", "cpan", "cpri", "cps", "cpu", "cr", "cran", "crc", "crlf", "crm", "crs", "crt", "crud", "cs", "cse", "csi", "csm", "csp", "csrf", "css", "csv", "ct", "ctan", "ctcp", "ctfe", "cti", "ctl", "ctm", "cts", "ctss", "cua", "cvs", "dac", "dal", "dao", "dap", "darpa", "dat", "db", "dba", "dbcs", "dbms", "dcc", "dcca", "dccp", "dcl", "dcmi", "dcom", "dcs", "dd", "dde", "ddi", "ddl", "ddr", "dec", "des", "dfa", "dfd", "dfs", "dgd", "dhcp", "dhtml", "dif", "dimm", "din", "dip", "dism", "divx", "dkim", "dl", "dll", "dlna", "dlp", "dma", "dmca", "dmi", "dml", "dmr", "dmz", "dn", "dnd", "dns", "doa", "docsis", "dom", "dos", "dp", "dpc", "dpi", "dpmi", "dpms", "dr", "dram", "dri", "drm", "dsa", "dsdl", "dsdm", "dsl", "dslam", "dsn", "dsp", "dsssl", "dtd", "dte", "dtp", "dtr", "dvd", "dvi", "dvr", "dw", "eai", "eap", "eas", "ebcdic", "ebml", "ecc", "ecma", "ecn", "ecos", "ecrs", "eda", "edi", "edo", "edsac", "edvac", "eeprom", "eff", "efi", "efm", "efs", "ega", "egp", "eide", "eigrp", "eisa", "elf", "emacs", "ems", "eniac", "eod", "eof", "eol", "eom", "eos", "eprom", "erd", "erm", "erp", "esb", "escon", "esd", "esr", "etl", "etw", "euc", "eula", "ewmh", "ext", "fap", "faq", "fasm", "fbdimm", "fcb", "fcs", "fdc", "fdd", "fddi", "fdm", "fdma", "fds", "fec", "femb", "fet", "fhs", "ficon", "fifo", "fips", "fl", "flac", "flops", "fmc", "fmo", "foldoc", "fosdem", "fosi", "foss", "fp", "fpga", "fps", "fpu", "fqdn", "fru", "fs", "fsb", "fsf", "fsm", "ftp", "ftta", "fttc", "ftth", "fttp", "fud", "fvek", "fws", "fxp", "fyi", "gb", "gcc", "gcj", "gcr", "gdb", "gdi", "geran", "gfdl", "gif", "gigo", "gimps", "gis", "gml", "gnu", "goms", "gpasm", "gpfs", "gpg", "gpgpu", "gpib", "gpl", "gprs", "gpt", "gpu", "gsm", "gui", "guid", "gwt", "gyr", "hal", "hasp", "hba", "hci", "hcl", "hd", "hdd", "hdl", "hdmi", "hf", "hfs", "hhd", "hid", "hig", "hird", "hlasm", "hls", "hma", "hp", "hpc", "hpfs", "hsdpa", "hsm", "ht", "htc", "htm", "html", "http", "https", "htx", "hurd", "hvd", "iana", "ibm", "ic", "icann", "ich", "icmp", "icp", "ics", "ict", "id", "ide", "idf", "idl", "ids", "iec", "ieee", "ietf", "ifl", "igmp", "igrp", "ihv", "iiop", "iis", "ike", "il", "im", "imap", "ime", "infosec", "ip", "ipam", "ipc", "ipl", "ipmi", "ipo", "ipp", "ips", "iptv", "ipx", "ir", "irc", "iri", "irp", "irq", "isa", "isam", "isatap", "isc", "isdn", "iso", "isp", "ispf", "isr", "isv", "itil", "itl", "itu", "ivcr", "ivrs", "jaxb", "jaxp", "jbod", "jce", "jcl", "jcp", "jdbc", "jdk", "jds", "jee", "jes", "jfc", "jfet", "jfs", "jini", "jit", "jme", "jms", "jmx", "jndi", "jni", "jnz", "jpeg", "jre", "js", "jse", "json", "jsp", "jtag", "jvm", "kb", "kde", "km", "krl", "kvm", "lacp", "lan", "lb", "lba", "lcd", "lcos", "lcr", "ldap", "le", "led", "lf", "lfs", "lga", "lgpl", "lib", "lif", "lifo", "lilo", "lisp", "lkml", "lm", "loc", "lpc", "lpi", "lpt", "lru", "lsb", "lsi", "lte", "ltl", "ltr", "lun", "lv", "lvd", "lvm", "lzw", "mac", "manet", "mapi", "mb", "mbcs", "mbd", "mbr", "mca", "mcad", "mcas", "mcdba", "mcdst", "mcitp", "mcm", "mcp", "mcpc", "mcpd", "mcsa", "mcsd", "mcse", "mct", "mcts", "mda", "mdf", "mdi", "mf", "mfc", "mfm", "mgcp", "mib", "micr", "midi", "mimd", "mime", "mimo", "minix", "mips", "mis", "misd", "mit", "mmc", "mmds", "mmf", "mmi", "mmio", "mmorpg", "mmu", "mmx", "mng", "mom", "mos", "mosfet", "motd", "mous", "mov", "mpaa", "mpeg", "mpl", "mpls", "mpu", "ms", "msa", "msb", "msdn", "msi", "msn", "mt", "mta", "mtbf", "mtu", "mua", "mvc", "mvp", "mvs", "mwc", "mx", "mxf", "nack", "nak", "nas", "nasm", "ncp", "ncq", "ncsa", "ndis", "ndps", "nds", "nep", "nfa", "nfc", "nfs", "ngl", "ngscb", "ni", "nic", "nim", "nio", "nist", "nlp", "nls", "nmi", "nntp", "noc", "nop", "nos", "np", "npl", "nptl", "npu", "ns", "nsa", "nsi", "nspr", "nss", "nt", "ntfs", "ntlm", "ntp", "numa", "nurbs", "nvr", "nvram", "oat", "obsai", "odbc", "oem", "oes", "ofdm", "oftc", "oid", "olap", "ole", "oled", "olpc", "oltp", "omf", "omg", "omr", "oo", "ooe", "oom", "oop", "ootb", "opml", "orb", "orm", "os", "oscon", "osdn", "osi", "ospf", "oss", "ostg", "oui", "pap", "parc", "pata", "pbs", "pc", "pcb", "pci", "pcl", "pcm", "pcmcia", "pcre", "pd", "pda", "pdf", "pdh", "pdp", "pe", "perl", "pfa", "pg", "pga", "pgo", "pgp", "php", "pid", "pim", "pio", "pkcs", "pki", "plc", "pld", "plt", "pmm", "png", "pnrp", "poid", "pojo", "posix", "ppc", "ppi", "ppp", "pptp", "pr", "ps", "psa", "psm", "psu", "psvi", "pv", "pvg", "pvr", "pxe", "pxi", "qa", "qdr", "qfp", "qotd", "qsop", "qtam", "racf", "rad", "raid", "raii", "rait", "ram", "rarp", "ras", "rc", "rcs", "rd", "rdbms", "rdc", "rdf", "rdm", "rdos", "rdp", "rds", "refal", "rest", "rf", "rfc", "rfi", "rfid", "rgb", "rgba", "rhel", "rhl", "ria", "riaa", "rip", "rir", "risc", "rje", "rle", "rll", "rmi", "rms", "rom", "romb", "rpc", "rpg", "rpm", "rras", "rsa", "rsi", "rss", "rtai", "rtc", "rte", "rtems", "rtl", "rtos", "rtp", "rts", "rtsp", "rtti", "rwd", "san", "sas", "sata", "sax", "sbod", "sbu", "scada", "scid", "scm", "scp", "scpc", "scpi", "scsa", "scsi", "sctp", "sd", "sddl", "sdh", "sdi", "sdio", "sdk", "sdl", "sdn", "sdp", "sdr", "sdram", "sdsl", "se", "sec", "sei", "seo", "sftp", "sgi", "sgml", "sgr", "sha", "shdsl", "sigcat", "siggraph", "simd", "simm", "sip", "sisd", "siso", "sles", "sli", "slm", "sloc", "sma", "smb", "smbios", "sme", "smf", "smil", "smp", "smps", "sms", "smt", "smtp", "sna", "snmp", "sntp", "soa", "soe", "soho", "soi", "sopa", "sp", "spa", "sparc", "spf", "spi", "spm", "spmd", "sql", "sram", "ssa", "ssd", "ssdp", "sse", "ssh", "ssi", "ssid", "ssl", "ssp", "ssse", "sssp", "sstp", "sus", "suse", "svc", "svd", "svg", "svga", "swf", "swt", "tao", "tapi", "tasm", "tb", "tcp", "tcu", "tdma", "tft", "tftp", "ti", "tla", "tld", "tls", "tlv", "tnc", "tpf", "tpm", "troff", "tron", "trsdos", "tso", "tsp", "tsr", "tta", "ttf", "ttl", "tts", "tty", "tucows", "twain", "uaag", "uac", "uart", "uat", "ucs", "uddi", "udma", "udp", "uefi", "uhf", "ui", "ul", "ula", "uma", "umb", "uml", "umpc", "umts", "unc", "univac", "ups", "uri", "url", "usb", "usr", "utc", "utf", "utp", "utran", "uucp", "uuid", "uun", "uvc", "uwp", "ux", "vax", "vb", "vba", "vbs", "vcpi", "vdm", "vdsl", "vesa", "vfat", "vfs", "vg", "vga", "vhf", "vlan", "vlb", "vlf", "vliw", "vlsi", "vlsm", "vm", "vmm", "vnc", "vod", "vpn", "vpu", "vr", "vram", "vrml", "vsam", "vsat", "vt", "vtam", "vtl", "wafs", "wai", "wais", "wan", "wap", "wasm", "wbem", "wcag", "wcf", "wdm", "wep", "wfi", "wins", "wlan", "wma", "wmi", "wmv", "wns", "wol", "wor", "wora", "wpa", "wpad", "wpan", "wpf", "wsdl", "wsfl", "wusb", "wwan", "wwdc", "wwid", "wwn", "www", "wysiwyg", "wzc", "xag", "xaml", "xcbl", "xdm", "xdmcp", "xhtml", "xilp", "xml", "xmms", "xmpp", "xms", "xns", "xp", "xpcom", "xpi", "xpidl", "xps", "xsd", "xsl", "xslt", "xss", "xtf", "xul", "xvga", "yaaf", "yacc", "yaml", "zcav", "zcs", "zif", "zifs", "zisc", "zma", "zoi", "zope", "zpl"];
|