Estructura inicial del proyecto

This commit is contained in:
2026-06-02 16:57:08 +00:00
commit 8b306b9afc
9864 changed files with 1435687 additions and 0 deletions

View File

@ -0,0 +1,6 @@
type ValidDataTypes = string | boolean | number | null | undefined | {
toString(): string;
};
export declare function build(data: Record<string, ValidDataTypes>): string;
export {};
//# sourceMappingURL=index.d.ts.map

View File

@ -0,0 +1 @@
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/builder/index.ts"],"names":[],"mappings":"AAAA,KAAK,cAAc,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG;IAAE,QAAQ,IAAI,MAAM,CAAA;CAAE,CAAC;AA4C5F,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,MAAM,CAIlE"}

View File

@ -0,0 +1,50 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.build = build;
function isQuoted(val) {
if (val[0] !== '{') {
return false;
}
for (let i = 1; i < val.length; i++) {
if (val[i] === '}') {
if (i + 1 === val.length) {
// if last char, then it's quoted properly
return true;
}
else if (val[i + 1] !== '}') {
// the next char is no a `}` so there is no valid escaping here
return false;
}
else {
// we are seeing an escaped `}`, so skip ahead
i++;
}
}
}
return false;
}
function needsQuotes(val) {
return !isQuoted(val) && !!val.match(/\[|]|{|}|\|\(|\)|,|;|\?|\*|=|!|@/)?.length;
}
function encodeTuple(key, value) {
if (value === null || value === undefined) {
return [key, ''];
}
switch (typeof value) {
case 'boolean':
return [key, value ? 'Yes' : 'No'];
default: {
const strVal = value.toString();
if (needsQuotes(strVal)) {
return [key, `{${strVal.replace(/}/g, '}}')}}`];
}
return [key, strVal];
}
}
}
function build(data) {
return Object.entries(data).map(([key, value]) => {
return encodeTuple(key.trim(), value).join('=');
}).join(';');
}
//# sourceMappingURL=index.js.map

View File

@ -0,0 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/builder/index.ts"],"names":[],"mappings":";;AA4CA,sBAIC;AA9CD,SAAS,QAAQ,CAAC,GAAW;IACzB,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;QACjB,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC;gBACvB,0CAA0C;gBAC1C,OAAO,IAAI,CAAC;YAChB,CAAC;iBAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC5B,+DAA+D;gBAC/D,OAAO,KAAK,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACJ,8CAA8C;gBAC9C,CAAC,EAAE,CAAC;YACR,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,kCAAkC,CAAC,EAAE,MAAM,CAAC;AACrF,CAAC;AAED,SAAS,WAAW,CAAC,GAAW,EAAE,KAAqB;IACnD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACrB,CAAC;IACD,QAAQ,OAAO,KAAK,EAAE,CAAC;QACnB,KAAK,SAAS;YACV,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACvC,OAAO,CAAC,CAAC,CAAC;YACN,MAAM,MAAM,GAAI,KAAgC,CAAC,QAAQ,EAAE,CAAC;YAC5D,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YACpD,CAAC;YACD,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACzB,CAAC;IACL,CAAC;AACL,CAAC;AAED,SAAgB,KAAK,CAAC,IAAoC;IACtD,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAC7C,OAAO,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjB,CAAC"}

View File

@ -0,0 +1,35 @@
import { inspect } from 'node:util';
interface CoerceTypeMap {
string: string;
number: number;
boolean: boolean;
}
export type CoerceType = keyof CoerceTypeMap;
type InferSchema<T extends SchemaDefinition> = {
[K in keyof T]: T[K]['type'] extends CoerceType ? CoerceTypeMap[T[K]['type']] : string;
};
export interface SchemaItem<T extends CoerceType = 'string'> {
type?: T;
default?: CoerceTypeMap[T];
aliases?: string[];
}
export type SchemaDefinition = Record<string, SchemaItem<any>>;
export declare class ConnectionString implements ReadonlyMap<string, string> {
#private;
constructor(connectionString: string);
[inspect.custom](): ReadonlyMap<string, string>;
get size(): number;
get<T extends CoerceType = 'string'>(key: string, coerceType?: T): CoerceTypeMap[T] | undefined;
keys(): MapIterator<string>;
values(): MapIterator<string>;
[Symbol.iterator](): MapIterator<[string, string]>;
entries(): MapIterator<[string, string]>;
toString(): string;
has(key: string): boolean;
forEach(callbackfn: (value: string, key: string, map: ReadonlyMap<string, string>) => void, thisArg?: any): void;
toSchema<T extends SchemaDefinition>(schema: T, { includeMissing }?: {
includeMissing?: boolean;
}): InferSchema<T>;
}
export {};
//# sourceMappingURL=connection-string.d.ts.map

View File

@ -0,0 +1 @@
{"version":3,"file":"connection-string.d.ts","sourceRoot":"","sources":["../src/connection-string.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,UAAU,aAAa;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC;AAE7C,KAAK,WAAW,CAAC,CAAC,SAAS,gBAAgB,IAAI;KAC1C,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,UAAU,GACzC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAC3B,MAAM;CACf,CAAC;AAEF,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,UAAU,GAAG,QAAQ;IACvD,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAGD,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D,qBAAa,gBAAiB,YAAW,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC;;gBAGpD,gBAAgB,EAAE,MAAM;IAMpC,CAAC,OAAO,CAAC,MAAM,CAAC;IAIhB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAID,GAAG,CAAC,CAAC,SAAS,UAAU,GAAG,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS;IAgB/F,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC;IAI3B,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC;IAI7B,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,WAAW,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAIlD,OAAO;IAIP,QAAQ;IAIR,GAAG,CAAC,GAAG,EAAE,MAAM;IAKf,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAOhH,QAAQ,CAAC,CAAC,SAAS,gBAAgB,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,cAAc,EAAE,GAAE;QAAE,cAAc,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,WAAW,CAAC,CAAC,CAAC;CAUzH"}

View File

@ -0,0 +1,77 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ConnectionString = void 0;
const node_util_1 = require("node:util");
const connection_string_parser_1 = __importDefault(require("./parser/connection-string-parser"));
class ConnectionString {
#connectionString;
#parsed;
constructor(connectionString) {
this.#connectionString = connectionString.toString();
const parsed = (0, connection_string_parser_1.default)(this.#connectionString);
this.#parsed = new Map(Object.entries(parsed));
}
[node_util_1.inspect.custom]() {
return this.#parsed;
}
get size() {
return this.#parsed.size;
}
// it would be really nice to be able to make this a generice (eg: get<string>) and that would then coerce the value
// see typia library for an example of something similar
get(key, coerceType) {
const val = this.#parsed.get(key.toLowerCase());
const actualType = coerceType ?? 'string';
if (typeof val === 'undefined' || actualType === 'string') {
return val;
}
switch (actualType) {
case 'boolean':
return (['false', 'no', '0'].includes(val.toLowerCase()) ? false : !!val);
case 'number':
return parseInt(val, 10);
default:
throw new TypeError('Coerce type not supported');
}
}
keys() {
return this.#parsed.keys();
}
values() {
return this.#parsed.values();
}
[Symbol.iterator]() {
return this.#parsed[Symbol.iterator]();
}
entries() {
return this.#parsed.entries();
}
toString() {
return this.#connectionString;
}
has(key) {
return this.#parsed.has(key.toLowerCase());
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
forEach(callbackfn, thisArg) {
this.#parsed.forEach((value, key) => {
callbackfn.call(thisArg ?? this, value, key, this);
});
}
// a way to extract a formatted object from the connection string
toSchema(schema, { includeMissing } = {}) {
return Object.fromEntries(Object.entries(schema).reduce((props, [key, { type, default: defaultValue, aliases }]) => {
// try to find the property
const prop = [key, ...aliases ?? []].find((k) => this.has(k));
if (prop || includeMissing) {
props.push([key, prop ? this.get(prop.toLowerCase(), type) : defaultValue]);
}
return props;
}, []));
}
}
exports.ConnectionString = ConnectionString;
//# sourceMappingURL=connection-string.js.map

View File

@ -0,0 +1 @@
{"version":3,"file":"connection-string.js","sourceRoot":"","sources":["../src/connection-string.ts"],"names":[],"mappings":"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"}

View File

@ -0,0 +1,6 @@
import { CoerceType, ConnectionString, SchemaDefinition, SchemaItem } from './connection-string';
import { build } from './builder';
import MSSQL_SCHEMA from './schema/mssql-schema';
export declare function parse(connectionString: string): Readonly<ConnectionString>;
export { build, CoerceType, SchemaDefinition, SchemaItem, MSSQL_SCHEMA };
//# sourceMappingURL=index.d.ts.map

View File

@ -0,0 +1 @@
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAClC,OAAO,YAAY,MAAM,uBAAuB,CAAC;AAEjD,wBAAgB,KAAK,CAAC,gBAAgB,EAAE,MAAM,8BAE7C;AAED,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC"}

View File

@ -0,0 +1,16 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.MSSQL_SCHEMA = exports.build = void 0;
exports.parse = parse;
const connection_string_1 = require("./connection-string");
const builder_1 = require("./builder");
Object.defineProperty(exports, "build", { enumerable: true, get: function () { return builder_1.build; } });
const mssql_schema_1 = __importDefault(require("./schema/mssql-schema"));
exports.MSSQL_SCHEMA = mssql_schema_1.default;
function parse(connectionString) {
return Object.freeze(new connection_string_1.ConnectionString(connectionString));
}
//# sourceMappingURL=index.js.map

View File

@ -0,0 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AASA,sBAEC;AAXD,2DAK6B;AAC7B,uCAAkC;AAOzB,sFAPA,eAAK,OAOA;AANd,yEAAiD;AAMS,uBANnD,sBAAY,CAMmD;AAJtE,SAAgB,KAAK,CAAC,gBAAwB;IAC1C,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,oCAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACjE,CAAC"}

View File

@ -0,0 +1,10 @@
export interface CollectionConfig {
terminator: string;
quotes: Record<string, string>;
}
export interface ParserConfig {
key: CollectionConfig;
value: CollectionConfig;
}
export default function connectionStringParser(connectionString: string, parserConfig?: ParserConfig): Record<string, string>;
//# sourceMappingURL=connection-string-parser.d.ts.map

View File

@ -0,0 +1 @@
{"version":3,"file":"connection-string-parser.d.ts","sourceRoot":"","sources":["../../src/parser/connection-string-parser.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,YAAY;IACzB,GAAG,EAAE,gBAAgB,CAAC;IACtB,KAAK,EAAE,gBAAgB,CAAC;CAC3B;AAsBD,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,gBAAgB,EAAE,MAAM,EAAE,YAAY,GAAE,YAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiHpI"}

View File

@ -0,0 +1,135 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = connectionStringParser;
var CollectionMode;
(function (CollectionMode) {
CollectionMode[CollectionMode["key"] = 0] = "key";
CollectionMode[CollectionMode["value"] = 1] = "value";
})(CollectionMode || (CollectionMode = {}));
const CONFIG = Object.freeze({
key: {
terminator: '=',
quotes: {},
},
value: {
terminator: ';',
quotes: {
'"': '"',
'\'': '\'',
'{': '}',
},
},
});
function connectionStringParser(connectionString, parserConfig = CONFIG) {
const parsed = {};
let collectionMode = CollectionMode.key;
let started = false;
let finished = false;
let quoted = false;
let quote = '';
let buffer = '';
let currentKey = '';
let pointer = 0;
function start() {
started = true;
}
function finish() {
finished = true;
}
function reset() {
started = false;
finished = false;
quoted = false;
quote = '';
buffer = '';
}
function config() {
return collectionMode === CollectionMode.key ? parserConfig.key : parserConfig.value;
}
function isTerminator(char) {
return config().terminator === char;
}
function isStartQuote(char) {
return Object.keys(config().quotes).some((val) => char === val);
}
function isEndQuote(char) {
return quoted && char === config().quotes[quote];
}
function push(char) {
buffer += char;
}
function collect() {
if (!quoted) {
buffer = buffer.trim();
}
switch (collectionMode) {
case CollectionMode.key:
currentKey = buffer.toLowerCase();
collectionMode = CollectionMode.value;
break;
case CollectionMode.value:
collectionMode = CollectionMode.key;
parsed[currentKey] = buffer;
currentKey = '';
break;
}
reset();
}
while (pointer < connectionString.length) {
const current = connectionString.charAt(pointer);
if (!finished) {
if (!started) {
if (current.trim()) {
start();
if (isStartQuote(current)) {
quoted = true;
quote = current;
}
else {
push(current);
}
}
}
else {
if (quoted && isEndQuote(current)) {
const next = connectionString.charAt(pointer + 1);
if (current === next) {
push(current);
pointer++;
}
else {
finish();
}
}
else if (!quoted && isTerminator(current)) {
const next = connectionString.charAt(pointer + 1);
if (current === next) {
push(current);
pointer++;
}
else {
collect();
}
}
else {
push(current);
}
}
}
else if (isTerminator(current)) {
collect();
}
else if (current.trim()) {
throw new Error('Malformed connection string');
}
pointer++;
}
if (quoted && !finished) {
throw new Error('Connection string terminated unexpectedly');
}
else {
collect();
}
return parsed;
}
//# sourceMappingURL=connection-string-parser.js.map

View File

@ -0,0 +1 @@
{"version":3,"file":"connection-string-parser.js","sourceRoot":"","sources":["../../src/parser/connection-string-parser.ts"],"names":[],"mappings":"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"}

View File

@ -0,0 +1,4 @@
import { SchemaDefinition } from '../connection-string';
declare const mssqlSchema: SchemaDefinition;
export default mssqlSchema;
//# sourceMappingURL=mssql-schema.d.ts.map

View File

@ -0,0 +1 @@
{"version":3,"file":"mssql-schema.d.ts","sourceRoot":"","sources":["../../src/schema/mssql-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,QAAA,MAAM,WAAW,EAAE,gBAiJlB,CAAC;AAEF,eAAe,WAAW,CAAC"}

View File

@ -0,0 +1,150 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const mssqlSchema = {
'application name': {
type: 'string',
aliases: ['app'],
},
'applicationintent': {
type: 'string',
default: 'ReadWrite',
},
'asynchronous processing': {
type: 'boolean',
default: false,
aliases: ['Async'],
},
'attachdbfilename': {
type: 'string',
aliases: ['extended properties', 'initial file name'],
},
'authentication': {
type: 'string',
},
'column encryption setting': {
type: 'string',
},
'connection timeout': {
type: 'number',
aliases: ['connect timeout', 'timeout'],
default: 15,
},
'connection lifetime': {
type: 'number',
aliases: ['load balance timeout'],
default: 0,
},
'connectretrycount': {
type: 'number',
default: 1,
},
'connectretryinterval': {
type: 'number',
default: 10,
},
'context connection': {
type: 'boolean',
default: false,
},
'current language': {
aliases: ['language'],
type: 'string',
},
'data source': {
aliases: ['addr', 'address', 'server', 'network address'],
type: 'string',
},
'encrypt': {
type: 'boolean',
default: false,
},
'enlist': {
type: 'boolean',
default: true,
},
'failover partner': {
type: 'string',
},
'initial catalog': {
type: 'string',
aliases: ['database'],
},
'integrated security': {
type: 'boolean',
aliases: ['trusted_connection'],
},
'max pool size': {
type: 'number',
default: 100,
},
'min pool size': {
type: 'number',
default: 0,
},
'multipleactiveresultsets': {
type: 'boolean',
default: false,
},
'multisubnetfailover': {
type: 'boolean',
default: false,
},
'network library': {
type: 'string',
aliases: ['network', 'net'],
},
'packet size': {
type: 'number',
default: 8000,
},
'password': {
type: 'string',
aliases: ['pwd'],
},
'persist security info': {
type: 'boolean',
aliases: ['persistsecurityinfo'],
default: false,
},
'poolblockingperiod': {
type: 'number',
default: 0,
},
'pooling': {
type: 'boolean',
default: true,
},
'replication': {
type: 'boolean',
default: false,
},
'transaction binding': {
type: 'string',
default: 'Implicit Unbind',
},
'transparentnetworkipresolution': {
type: 'boolean',
default: true,
},
'trustservercertificate': {
type: 'boolean',
default: false,
},
'type system version': {
type: 'string',
},
'user id': {
type: 'string',
aliases: ['uid'],
},
'user instance': {
type: 'boolean',
default: false,
},
'workstation id': {
type: 'string',
aliases: ['wsid'],
},
};
exports.default = mssqlSchema;
//# sourceMappingURL=mssql-schema.js.map

View File

@ -0,0 +1 @@
{"version":3,"file":"mssql-schema.js","sourceRoot":"","sources":["../../src/schema/mssql-schema.ts"],"names":[],"mappings":"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"}