uql-orm 0.6.1 → 0.7.3
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/CHANGELOG.md +28 -0
- package/README.md +2 -1
- package/dist/browser/{cc-BEf4wTUm.js → cc-BVTDOeZ_.js} +54 -23
- package/dist/browser/cc-BVTDOeZ_.js.map +1 -0
- package/dist/browser/uql-browser.min.js +124 -139
- package/dist/browser/uql-browser.min.js.map +1 -1
- package/dist/bunSql/bunSql.util.d.ts +30 -0
- package/dist/bunSql/bunSql.util.d.ts.map +1 -0
- package/dist/bunSql/bunSql.util.js +98 -0
- package/dist/bunSql/bunSql.util.js.map +1 -0
- package/dist/bunSql/bunSqlQuerier.d.ts +14 -0
- package/dist/bunSql/bunSqlQuerier.d.ts.map +1 -0
- package/dist/bunSql/bunSqlQuerier.js +37 -0
- package/dist/bunSql/bunSqlQuerier.js.map +1 -0
- package/dist/bunSql/bunSqlQuerierPool.d.ts +19 -0
- package/dist/bunSql/bunSqlQuerierPool.d.ts.map +1 -0
- package/dist/bunSql/bunSqlQuerierPool.js +58 -0
- package/dist/bunSql/bunSqlQuerierPool.js.map +1 -0
- package/dist/bunSql/index.d.ts +3 -0
- package/dist/bunSql/index.d.ts.map +1 -0
- package/dist/bunSql/index.js +3 -0
- package/dist/bunSql/index.js.map +1 -0
- package/dist/cockroachdb/crdbQuerier.d.ts +3 -8
- package/dist/cockroachdb/crdbQuerier.d.ts.map +1 -1
- package/dist/cockroachdb/crdbQuerier.js +2 -30
- package/dist/cockroachdb/crdbQuerier.js.map +1 -1
- package/dist/cockroachdb/crdbQuerierPool.d.ts +4 -4
- package/dist/cockroachdb/crdbQuerierPool.d.ts.map +1 -1
- package/dist/cockroachdb/crdbQuerierPool.js +5 -7
- package/dist/cockroachdb/crdbQuerierPool.js.map +1 -1
- package/dist/d1/d1Querier.d.ts +2 -1
- package/dist/d1/d1Querier.d.ts.map +1 -1
- package/dist/d1/d1Querier.js +3 -4
- package/dist/d1/d1Querier.js.map +1 -1
- package/dist/d1/d1QuerierPool.d.ts +2 -1
- package/dist/d1/d1QuerierPool.d.ts.map +1 -1
- package/dist/d1/d1QuerierPool.js +3 -2
- package/dist/d1/d1QuerierPool.js.map +1 -1
- package/dist/dialect/abstractDialect.d.ts +1 -0
- package/dist/dialect/abstractDialect.d.ts.map +1 -1
- package/dist/dialect/abstractDialect.js +3 -0
- package/dist/dialect/abstractDialect.js.map +1 -1
- package/dist/dialect/abstractSqlDialect.d.ts +57 -52
- package/dist/dialect/abstractSqlDialect.d.ts.map +1 -1
- package/dist/dialect/abstractSqlDialect.js +194 -142
- package/dist/dialect/abstractSqlDialect.js.map +1 -1
- package/dist/dialect/dialectConfig.d.ts +19 -8
- package/dist/dialect/dialectConfig.d.ts.map +1 -1
- package/dist/dialect/dialectConfig.js +6 -0
- package/dist/dialect/dialectConfig.js.map +1 -1
- package/dist/dialect/mysqlLikeSqlDialect.d.ts +3 -5
- package/dist/dialect/mysqlLikeSqlDialect.d.ts.map +1 -1
- package/dist/dialect/mysqlLikeSqlDialect.js +12 -24
- package/dist/dialect/mysqlLikeSqlDialect.js.map +1 -1
- package/dist/dialect/queryContext.js +1 -1
- package/dist/dialect/queryContext.js.map +1 -1
- package/dist/express/querierMiddleware.d.ts.map +1 -1
- package/dist/express/querierMiddleware.js +13 -20
- package/dist/express/querierMiddleware.js.map +1 -1
- package/dist/libsql/libsqlQuerier.d.ts +2 -1
- package/dist/libsql/libsqlQuerier.d.ts.map +1 -1
- package/dist/libsql/libsqlQuerier.js +3 -4
- package/dist/libsql/libsqlQuerier.js.map +1 -1
- package/dist/libsql/libsqlQuerierPool.d.ts +2 -1
- package/dist/libsql/libsqlQuerierPool.d.ts.map +1 -1
- package/dist/libsql/libsqlQuerierPool.js +3 -2
- package/dist/libsql/libsqlQuerierPool.js.map +1 -1
- package/dist/maria/mariaDialect.d.ts +2 -4
- package/dist/maria/mariaDialect.d.ts.map +1 -1
- package/dist/maria/mariaDialect.js +1 -5
- package/dist/maria/mariaDialect.js.map +1 -1
- package/dist/maria/mariadbQuerier.d.ts +2 -1
- package/dist/maria/mariadbQuerier.d.ts.map +1 -1
- package/dist/maria/mariadbQuerier.js +4 -6
- package/dist/maria/mariadbQuerier.js.map +1 -1
- package/dist/maria/mariadbQuerierPool.d.ts +2 -1
- package/dist/maria/mariadbQuerierPool.d.ts.map +1 -1
- package/dist/maria/mariadbQuerierPool.js +3 -2
- package/dist/maria/mariadbQuerierPool.js.map +1 -1
- package/dist/migrate/sync/schemaSync.js +1 -1
- package/dist/migrate/sync/schemaSync.js.map +1 -1
- package/dist/mongo/mongodbQuerierPool.d.ts +2 -1
- package/dist/mongo/mongodbQuerierPool.d.ts.map +1 -1
- package/dist/mongo/mongodbQuerierPool.js +2 -3
- package/dist/mongo/mongodbQuerierPool.js.map +1 -1
- package/dist/mysql/mysql2Querier.d.ts +2 -1
- package/dist/mysql/mysql2Querier.d.ts.map +1 -1
- package/dist/mysql/mysql2Querier.js +7 -11
- package/dist/mysql/mysql2Querier.js.map +1 -1
- package/dist/mysql/mysql2QuerierPool.d.ts +2 -1
- package/dist/mysql/mysql2QuerierPool.d.ts.map +1 -1
- package/dist/mysql/mysql2QuerierPool.js +3 -2
- package/dist/mysql/mysql2QuerierPool.js.map +1 -1
- package/dist/neon/neonQuerier.d.ts +3 -7
- package/dist/neon/neonQuerier.d.ts.map +1 -1
- package/dist/neon/neonQuerier.js +2 -18
- package/dist/neon/neonQuerier.js.map +1 -1
- package/dist/neon/neonQuerierPool.d.ts +4 -4
- package/dist/neon/neonQuerierPool.d.ts.map +1 -1
- package/dist/neon/neonQuerierPool.js +5 -7
- package/dist/neon/neonQuerierPool.js.map +1 -1
- package/dist/postgres/abstractPgQuerier.d.ts +18 -0
- package/dist/postgres/abstractPgQuerier.d.ts.map +1 -0
- package/dist/postgres/abstractPgQuerier.js +33 -0
- package/dist/postgres/abstractPgQuerier.js.map +1 -0
- package/dist/postgres/abstractPgQuerierPool.d.ts +15 -0
- package/dist/postgres/abstractPgQuerierPool.d.ts.map +1 -0
- package/dist/postgres/abstractPgQuerierPool.js +10 -0
- package/dist/postgres/abstractPgQuerierPool.js.map +1 -0
- package/dist/postgres/pgQuerier.d.ts +3 -8
- package/dist/postgres/pgQuerier.d.ts.map +1 -1
- package/dist/postgres/pgQuerier.js +2 -30
- package/dist/postgres/pgQuerier.js.map +1 -1
- package/dist/postgres/pgQuerierPool.d.ts +6 -6
- package/dist/postgres/pgQuerierPool.d.ts.map +1 -1
- package/dist/postgres/pgQuerierPool.js +7 -9
- package/dist/postgres/pgQuerierPool.js.map +1 -1
- package/dist/postgres/postgresDialect.d.ts +6 -16
- package/dist/postgres/postgresDialect.d.ts.map +1 -1
- package/dist/postgres/postgresDialect.js +49 -72
- package/dist/postgres/postgresDialect.js.map +1 -1
- package/dist/querier/abstractQuerierPool.d.ts +5 -3
- package/dist/querier/abstractQuerierPool.d.ts.map +1 -1
- package/dist/querier/abstractQuerierPool.js +6 -3
- package/dist/querier/abstractQuerierPool.js.map +1 -1
- package/dist/querier/abstractSqlQuerier.d.ts +5 -0
- package/dist/querier/abstractSqlQuerier.d.ts.map +1 -1
- package/dist/querier/abstractSqlQuerier.js +15 -5
- package/dist/querier/abstractSqlQuerier.js.map +1 -1
- package/dist/sqlite/abstractSqliteQuerier.d.ts +0 -2
- package/dist/sqlite/abstractSqliteQuerier.d.ts.map +1 -1
- package/dist/sqlite/abstractSqliteQuerier.js +0 -9
- package/dist/sqlite/abstractSqliteQuerier.js.map +1 -1
- package/dist/sqlite/sqliteDialect.d.ts +6 -20
- package/dist/sqlite/sqliteDialect.d.ts.map +1 -1
- package/dist/sqlite/sqliteDialect.js +20 -33
- package/dist/sqlite/sqliteDialect.js.map +1 -1
- package/dist/sqlite/sqliteQuerier.d.ts +2 -1
- package/dist/sqlite/sqliteQuerier.d.ts.map +1 -1
- package/dist/sqlite/sqliteQuerier.js +3 -4
- package/dist/sqlite/sqliteQuerier.js.map +1 -1
- package/dist/sqlite/sqliteQuerierPool.d.ts +2 -1
- package/dist/sqlite/sqliteQuerierPool.d.ts.map +1 -1
- package/dist/sqlite/sqliteQuerierPool.js +3 -2
- package/dist/sqlite/sqliteQuerierPool.js.map +1 -1
- package/dist/type/querierPool.d.ts +16 -0
- package/dist/type/querierPool.d.ts.map +1 -1
- package/dist/type/query.d.ts +8 -3
- package/dist/type/query.d.ts.map +1 -1
- package/dist/type/utility.d.ts +4 -0
- package/dist/type/utility.d.ts.map +1 -1
- package/dist/util/sql.util.d.ts +26 -3
- package/dist/util/sql.util.d.ts.map +1 -1
- package/dist/util/sql.util.js +51 -9
- package/dist/util/sql.util.js.map +1 -1
- package/package.json +7 -6
- package/dist/browser/cc-BEf4wTUm.js.map +0 -1
package/dist/util/sql.util.js
CHANGED
|
@@ -82,18 +82,60 @@ export function escapeSqlId(val, escapeIdChar = '`', forbidQualified, addDot) {
|
|
|
82
82
|
return escaped + suffix;
|
|
83
83
|
}
|
|
84
84
|
/**
|
|
85
|
-
*
|
|
85
|
+
* Unified utility to build a QueryUpdateResult from driver-specific results.
|
|
86
86
|
*
|
|
87
|
-
* UQL's SQL
|
|
87
|
+
* UQL's SQL dialects always alias the entity's ID column to `id` in RETURNING clauses,
|
|
88
88
|
* so the result rows always contain an `id` property regardless of the entity's @Id() key name.
|
|
89
89
|
*/
|
|
90
|
-
export function
|
|
91
|
-
const
|
|
92
|
-
|
|
93
|
-
//
|
|
94
|
-
|
|
95
|
-
const
|
|
96
|
-
|
|
90
|
+
export function buildUpdateResult(payload) {
|
|
91
|
+
const { rows, id, insertIdStrategy, upsertStatus } = payload;
|
|
92
|
+
const changes = payload.changes ?? rows?.length ?? 0;
|
|
93
|
+
// 1. ID Mapping
|
|
94
|
+
let firstId;
|
|
95
|
+
const rowId = rows?.[0]?.['id'];
|
|
96
|
+
if (isPrimaryKey(rowId)) {
|
|
97
|
+
firstId = rowId;
|
|
98
|
+
}
|
|
99
|
+
else if (isPrimaryKey(id)) {
|
|
100
|
+
const offset = changes - 1;
|
|
101
|
+
if (insertIdStrategy === 'last') {
|
|
102
|
+
if (typeof id === 'bigint') {
|
|
103
|
+
firstId = id - BigInt(offset);
|
|
104
|
+
}
|
|
105
|
+
else if (typeof id === 'number') {
|
|
106
|
+
firstId = id - offset;
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
firstId = id;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
firstId = id;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
let ids = [];
|
|
117
|
+
if (rows?.length) {
|
|
118
|
+
ids = rows.map((r) => r['id']);
|
|
119
|
+
}
|
|
120
|
+
else if (isPrimaryKey(firstId)) {
|
|
121
|
+
if (typeof firstId === 'bigint' || typeof firstId === 'number') {
|
|
122
|
+
ids = Array.from({ length: changes }, (_, i) => typeof firstId === 'bigint' ? firstId + BigInt(i) : firstId + i);
|
|
123
|
+
}
|
|
124
|
+
else if (changes === 1) {
|
|
125
|
+
ids = [firstId];
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
// 2. Creation Status
|
|
129
|
+
// PostgreSQL: `(xmax = 0) AS "_created"` in the RETURNING clause provides a boolean per row.
|
|
130
|
+
// MySQL/MariaDB: `affectedRows` convention — 1 = insert, 2 = update, 0 = no-op.
|
|
131
|
+
const created = (rows?.length === 1 ? rows[0]?.['_created'] : undefined) ??
|
|
132
|
+
(typeof upsertStatus === 'number' && upsertStatus >= 0 && upsertStatus <= 2 ? upsertStatus === 1 : undefined);
|
|
97
133
|
return { changes, ids, firstId: ids?.[0], created };
|
|
98
134
|
}
|
|
135
|
+
/**
|
|
136
|
+
* Checks if a value is of a primary key type (string, number, or bigint).
|
|
137
|
+
*/
|
|
138
|
+
export function isPrimaryKey(val) {
|
|
139
|
+
return typeof val === 'string' || typeof val === 'number' || typeof val === 'bigint';
|
|
140
|
+
}
|
|
99
141
|
//# sourceMappingURL=sql.util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql.util.js","sourceRoot":"","sources":["../../src/util/sql.util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sql.util.js","sourceRoot":"","sources":["../../src/util/sql.util.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"homepage": "https://uql-orm.dev",
|
|
4
4
|
"description": "Fast, type-safe TypeScript ORM — one API for every database",
|
|
5
5
|
"license": "MIT",
|
|
6
|
-
"version": "0.
|
|
6
|
+
"version": "0.7.3",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"sideEffects": false,
|
|
9
9
|
"main": "./dist/index.js",
|
|
@@ -36,7 +36,8 @@
|
|
|
36
36
|
},
|
|
37
37
|
"./libsql": "./dist/libsql/index.js",
|
|
38
38
|
"./neon": "./dist/neon/index.js",
|
|
39
|
-
"./d1": "./dist/d1/index.js"
|
|
39
|
+
"./d1": "./dist/d1/index.js",
|
|
40
|
+
"./bunSql": "./dist/bunSql/index.js"
|
|
40
41
|
},
|
|
41
42
|
"files": [
|
|
42
43
|
"dist",
|
|
@@ -99,17 +100,17 @@
|
|
|
99
100
|
}
|
|
100
101
|
},
|
|
101
102
|
"devDependencies": {
|
|
102
|
-
"@libsql/client": "^0.17.
|
|
103
|
+
"@libsql/client": "^0.17.2",
|
|
103
104
|
"@neondatabase/serverless": "^1.0.2",
|
|
104
105
|
"@types/better-sqlite3": "^7.6.13",
|
|
105
106
|
"@types/express": "^5.0.6",
|
|
106
|
-
"@types/pg": "^8.
|
|
107
|
+
"@types/pg": "^8.20.0",
|
|
107
108
|
"@types/sqlstring": "^2.3.2",
|
|
108
109
|
"better-sqlite3": "^12.8.0",
|
|
109
110
|
"bunchee": "^6.9.4",
|
|
110
111
|
"express": "^5.2.1",
|
|
111
112
|
"mariadb": "^3.5.2",
|
|
112
|
-
"mongodb": "^7.1.
|
|
113
|
+
"mongodb": "^7.1.1",
|
|
113
114
|
"mysql2": "^3.20.0",
|
|
114
115
|
"pg": "^8.20.0",
|
|
115
116
|
"pg-query-stream": "^4.14.0"
|
|
@@ -154,5 +155,5 @@
|
|
|
154
155
|
"publishConfig": {
|
|
155
156
|
"access": "public"
|
|
156
157
|
},
|
|
157
|
-
"gitHead": "
|
|
158
|
+
"gitHead": "f4f134fef3bf2df72135346516b4acd4e1bfd2ca"
|
|
158
159
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cc-BEf4wTUm.js","sources":["../../../../node_modules/.bun/@swc+helpers@0.5.19/node_modules/@swc/helpers/esm/_apply_decs_2203_r.js"],"sourcesContent":["/* @minVersion 7.20.0 */\n\n/**\n Enums are used in this file, but not assigned to vars to avoid non-hoistable values\n\n CONSTRUCTOR = 0;\n PUBLIC = 1;\n PRIVATE = 2;\n\n FIELD = 0;\n ACCESSOR = 1;\n METHOD = 2;\n GETTER = 3;\n SETTER = 4;\n\n STATIC = 5;\n\n CLASS = 10; // only used in assertValidReturnValue\n*/\n\nfunction _apply_decs_2203_r(targetClass, memberDecs, classDecs, parentClass) {\n function createAddInitializerMethod(initializers, decoratorFinishedRef) {\n return function addInitializer(initializer) {\n assertNotFinished(decoratorFinishedRef, \"addInitializer\");\n assertCallable(initializer, \"An initializer\");\n initializers.push(initializer);\n };\n }\n\n function memberDec(dec, name, desc, initializers, kind, isStatic, isPrivate, metadata, value) {\n var kindStr;\n\n switch (kind) {\n case 1 /* ACCESSOR */:\n kindStr = \"accessor\";\n break;\n case 2 /* METHOD */:\n kindStr = \"method\";\n break;\n case 3 /* GETTER */:\n kindStr = \"getter\";\n break;\n case 4 /* SETTER */:\n kindStr = \"setter\";\n break;\n default:\n kindStr = \"field\";\n }\n\n var ctx = { kind: kindStr, name: isPrivate ? \"#\" + name : name, static: isStatic, private: isPrivate, metadata: metadata };\n\n var decoratorFinishedRef = { v: false };\n\n ctx.addInitializer = createAddInitializerMethod(initializers, decoratorFinishedRef);\n\n var get, set;\n if (kind === 0 /* FIELD */) {\n if (isPrivate) {\n get = desc.get;\n set = desc.set;\n } else {\n get = function() {\n return this[name];\n };\n set = function(v) {\n this[name] = v;\n };\n }\n } else if (kind === 2 /* METHOD */) {\n get = function() {\n return desc.value;\n };\n } else {\n // replace with values that will go through the final getter and setter\n if (kind === 1 /* ACCESSOR */ || kind === 3 /* GETTER */) {\n get = function() {\n return desc.get.call(this);\n };\n }\n\n if (kind === 1 /* ACCESSOR */ || kind === 4 /* SETTER */) {\n set = function(v) {\n desc.set.call(this, v);\n };\n }\n }\n ctx.access = get && set ? { get: get, set: set } : get ? { get: get } : { set: set };\n\n try {\n return dec(value, ctx);\n } finally {\n decoratorFinishedRef.v = true;\n }\n }\n\n function assertNotFinished(decoratorFinishedRef, fnName) {\n if (decoratorFinishedRef.v) {\n throw new Error(\"attempted to call \" + fnName + \" after decoration was finished\");\n }\n }\n\n function assertCallable(fn, hint) {\n if (typeof fn !== \"function\") {\n throw new TypeError(hint + \" must be a function\");\n }\n }\n\n function assertValidReturnValue(kind, value) {\n var type = typeof value;\n\n if (kind === 1 /* ACCESSOR */) {\n if (type !== \"object\" || value === null) {\n throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or void 0\");\n }\n if (value.get !== undefined) {\n assertCallable(value.get, \"accessor.get\");\n }\n if (value.set !== undefined) {\n assertCallable(value.set, \"accessor.set\");\n }\n if (value.init !== undefined) {\n assertCallable(value.init, \"accessor.init\");\n }\n } else if (type !== \"function\") {\n var hint;\n if (kind === 0 /* FIELD */) {\n hint = \"field\";\n } else if (kind === 10 /* CLASS */) {\n hint = \"class\";\n } else {\n hint = \"method\";\n }\n throw new TypeError(hint + \" decorators must return a function or void 0\");\n }\n }\n\n function applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, initializers, metadata) {\n var decs = decInfo[0];\n\n var desc, init, value;\n\n if (isPrivate) {\n if (kind === 0 /* FIELD */ || kind === 1 /* ACCESSOR */) {\n desc = { get: decInfo[3], set: decInfo[4] };\n } else if (kind === 3 /* GETTER */) {\n desc = { get: decInfo[3] };\n } else if (kind === 4 /* SETTER */) {\n desc = { set: decInfo[3] };\n } else {\n desc = { value: decInfo[3] };\n }\n } else if (kind !== 0 /* FIELD */) {\n desc = Object.getOwnPropertyDescriptor(base, name);\n }\n\n if (kind === 1 /* ACCESSOR */) {\n value = { get: desc.get, set: desc.set };\n } else if (kind === 2 /* METHOD */) {\n value = desc.value;\n } else if (kind === 3 /* GETTER */) {\n value = desc.get;\n } else if (kind === 4 /* SETTER */) {\n value = desc.set;\n }\n\n var newValue, get, set;\n\n if (typeof decs === \"function\") {\n newValue = memberDec(decs, name, desc, initializers, kind, isStatic, isPrivate, metadata, value);\n\n if (newValue !== void 0) {\n assertValidReturnValue(kind, newValue);\n\n if (kind === 0 /* FIELD */) {\n init = newValue;\n } else if (kind === 1 /* ACCESSOR */) {\n init = newValue.init;\n get = newValue.get || value.get;\n set = newValue.set || value.set;\n\n value = { get: get, set: set };\n } else {\n value = newValue;\n }\n }\n } else {\n for (var i = decs.length - 1; i >= 0; i--) {\n var dec = decs[i];\n\n newValue = memberDec(dec, name, desc, initializers, kind, isStatic, isPrivate, metadata, value);\n\n if (newValue !== void 0) {\n assertValidReturnValue(kind, newValue);\n var newInit;\n\n if (kind === 0 /* FIELD */) {\n newInit = newValue;\n } else if (kind === 1 /* ACCESSOR */) {\n newInit = newValue.init;\n get = newValue.get || value.get;\n set = newValue.set || value.set;\n\n value = { get: get, set: set };\n } else {\n value = newValue;\n }\n\n if (newInit !== void 0) {\n if (init === void 0) {\n init = newInit;\n } else if (typeof init === \"function\") {\n init = [init, newInit];\n } else {\n init.push(newInit);\n }\n }\n }\n }\n }\n\n if (kind === 0 /* FIELD */ || kind === 1 /* ACCESSOR */) {\n if (init === void 0) {\n // If the initializer was void 0, sub in a dummy initializer\n init = function(instance, init) {\n return init;\n };\n } else if (typeof init !== \"function\") {\n var ownInitializers = init;\n\n init = function(instance, init) {\n var value = init;\n\n for (var i = 0; i < ownInitializers.length; i++) value = ownInitializers[i].call(instance, value);\n\n return value;\n };\n } else {\n var originalInitializer = init;\n\n init = function(instance, init) {\n return originalInitializer.call(instance, init);\n };\n }\n\n ret.push(init);\n }\n\n if (kind !== 0 /* FIELD */) {\n if (kind === 1 /* ACCESSOR */) {\n desc.get = value.get;\n desc.set = value.set;\n } else if (kind === 2 /* METHOD */) {\n desc.value = value;\n } else if (kind === 3 /* GETTER */) {\n desc.get = value;\n } else if (kind === 4 /* SETTER */) {\n desc.set = value;\n }\n\n if (isPrivate) {\n if (kind === 1 /* ACCESSOR */) {\n ret.push(function(instance, args) {\n return value.get.call(instance, args);\n });\n ret.push(function(instance, args) {\n return value.set.call(instance, args);\n });\n } else if (kind === 2 /* METHOD */) {\n ret.push(value);\n } else {\n ret.push(function(instance, args) {\n return value.call(instance, args);\n });\n }\n } else {\n Object.defineProperty(base, name, desc);\n }\n }\n }\n\n function applyMemberDecs(Class, decInfos, metadata) {\n var ret = [];\n var protoInitializers;\n var staticInitializers;\n\n var existingProtoNonFields = new Map();\n var existingStaticNonFields = new Map();\n\n for (var i = 0; i < decInfos.length; i++) {\n var decInfo = decInfos[i];\n\n // skip computed property names\n if (!Array.isArray(decInfo)) continue;\n\n var kind = decInfo[1];\n var name = decInfo[2];\n var isPrivate = decInfo.length > 3;\n\n var isStatic = kind >= 5; /* STATIC */\n var base;\n var initializers;\n\n if (isStatic) {\n base = Class;\n kind = kind - 5 /* STATIC */;\n // initialize staticInitializers when we see a non-field static member\n staticInitializers = staticInitializers || [];\n initializers = staticInitializers;\n } else {\n base = Class.prototype;\n // initialize protoInitializers when we see a non-field member\n protoInitializers = protoInitializers || [];\n initializers = protoInitializers;\n }\n\n if (kind !== 0 /* FIELD */ && !isPrivate) {\n var existingNonFields = isStatic ? existingStaticNonFields : existingProtoNonFields;\n\n var existingKind = existingNonFields.get(name) || 0;\n\n if (existingKind === true || (existingKind === 3 /* GETTER */ && kind !== 4) /* SETTER */ || (existingKind === 4 /* SETTER */ && kind !== 3) /* GETTER */) {\n throw new Error(\n \"Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: \"\n + name\n );\n } else if (!existingKind && kind > 2 /* METHOD */) {\n existingNonFields.set(name, kind);\n } else {\n existingNonFields.set(name, true);\n }\n }\n\n applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, initializers, metadata);\n }\n\n pushInitializers(ret, protoInitializers);\n pushInitializers(ret, staticInitializers);\n return ret;\n }\n\n function pushInitializers(ret, initializers) {\n if (initializers) {\n ret.push(function(instance) {\n for (var i = 0; i < initializers.length; i++) initializers[i].call(instance);\n return instance;\n });\n }\n }\n\n function applyClassDecs(targetClass, classDecs, metadata) {\n if (classDecs.length > 0) {\n var initializers = [];\n var newClass = targetClass;\n var name = targetClass.name;\n\n for (var i = classDecs.length - 1; i >= 0; i--) {\n var decoratorFinishedRef = { v: false };\n\n try {\n var nextNewClass = classDecs[i](newClass, { kind: \"class\", name: name, addInitializer: createAddInitializerMethod(initializers, decoratorFinishedRef), metadata });\n } finally {\n decoratorFinishedRef.v = true;\n }\n\n if (nextNewClass !== undefined) {\n assertValidReturnValue(10, /* CLASS */ nextNewClass);\n newClass = nextNewClass;\n }\n }\n\n return [defineMetadata(newClass, metadata), function() {\n for (var i = 0; i < initializers.length; i++) initializers[i].call(newClass);\n }];\n }\n // The transformer will not emit assignment when there are no class decorators,\n // so we don't have to return an empty array here.\n }\n\n function defineMetadata(Class, metadata) {\n return Object.defineProperty(Class, Symbol.metadata || Symbol.for(\"Symbol.metadata\"), { configurable: true, enumerable: true, value: metadata });\n }\n\n /**\n Basic usage:\n\n applyDecs(\n Class,\n [\n // member decorators\n [\n dec, // dec or array of decs\n 0, // kind of value being decorated\n 'prop', // name of public prop on class containing the value being decorated,\n '#p', // the name of the private property (if is private, void 0 otherwise),\n ]\n ],\n [\n // class decorators\n dec1, dec2\n ]\n )\n ```\n\n Fully transpiled example:\n\n ```js\n @dec\n class Class {\n @dec\n a = 123;\n\n @dec\n #a = 123;\n\n @dec\n @dec2\n accessor b = 123;\n\n @dec\n accessor #b = 123;\n\n @dec\n c() { console.log('c'); }\n\n @dec\n #c() { console.log('privC'); }\n\n @dec\n get d() { console.log('d'); }\n\n @dec\n get #d() { console.log('privD'); }\n\n @dec\n set e(v) { console.log('e'); }\n\n @dec\n set #e(v) { console.log('privE'); }\n }\n\n\n // becomes\n let initializeInstance;\n let initializeClass;\n\n let initA;\n let initPrivA;\n\n let initB;\n let initPrivB, getPrivB, setPrivB;\n\n let privC;\n let privD;\n let privE;\n\n let Class;\n class _Class {\n static {\n let ret = applyDecs(\n this,\n [\n [dec, 0, 'a'],\n [dec, 0, 'a', (i) => i.#a, (i, v) => i.#a = v],\n [[dec, dec2], 1, 'b'],\n [dec, 1, 'b', (i) => i.#privBData, (i, v) => i.#privBData = v],\n [dec, 2, 'c'],\n [dec, 2, 'c', () => console.log('privC')],\n [dec, 3, 'd'],\n [dec, 3, 'd', () => console.log('privD')],\n [dec, 4, 'e'],\n [dec, 4, 'e', () => console.log('privE')],\n ],\n [\n dec\n ]\n )\n\n initA = ret[0];\n\n initPrivA = ret[1];\n\n initB = ret[2];\n\n initPrivB = ret[3];\n getPrivB = ret[4];\n setPrivB = ret[5];\n\n privC = ret[6];\n\n privD = ret[7];\n\n privE = ret[8];\n\n initializeInstance = ret[9];\n\n Class = ret[10]\n\n initializeClass = ret[11];\n }\n\n a = (initializeInstance(this), initA(this, 123));\n\n #a = initPrivA(this, 123);\n\n #bData = initB(this, 123);\n get b() { return this.#bData }\n set b(v) { this.#bData = v }\n\n #privBData = initPrivB(this, 123);\n get #b() { return getPrivB(this); }\n set #b(v) { setPrivB(this, v); }\n\n c() { console.log('c'); }\n\n #c(...args) { return privC(this, ...args) }\n\n get d() { console.log('d'); }\n\n get #d() { return privD(this); }\n\n set e(v) { console.log('e'); }\n\n set #e(v) { privE(this, v); }\n }\n\n initializeClass(Class);\n */\n\n _apply_decs_2203_r = function(targetClass, memberDecs, classDecs, parentClass) {\n if (parentClass !== void 0) {\n var parentMetadata = parentClass[Symbol.metadata || Symbol.for(\"Symbol.metadata\")];\n }\n var metadata = Object.create(parentMetadata === void 0 ? null : parentMetadata);\n var e = applyMemberDecs(targetClass, memberDecs, metadata);\n if (!classDecs.length) defineMetadata(targetClass, metadata);\n return {\n e: e,\n // Lazily apply class decorations so that member init locals can be properly bound.\n get c() {\n return applyClassDecs(targetClass, classDecs, metadata);\n }\n };\n };\n\n return _apply_decs_2203_r(targetClass, memberDecs, classDecs, parentClass);\n}\n\nexport { _apply_decs_2203_r as _ };\n"],"names":["_apply_decs_2203_r","targetClass","memberDecs","classDecs","parentClass","createAddInitializerMethod","initializers","decoratorFinishedRef","addInitializer","initializer","assertNotFinished","assertCallable","push","memberDec","dec","name","desc","kind","isStatic","isPrivate","metadata","value","kindStr","ctx","static","private","v","get","set","call","access","fnName","Error","fn","hint","TypeError","assertValidReturnValue","type","undefined","init","applyMemberDec","ret","base","decInfo","decs","Object","getOwnPropertyDescriptor","newValue","i","length","newInit","instance","ownInitializers","originalInitializer","args","defineProperty","applyMemberDecs","Class","decInfos","protoInitializers","staticInitializers","existingProtoNonFields","Map","existingStaticNonFields","Array","isArray","prototype","existingNonFields","existingKind","pushInitializers","applyClassDecs","newClass","nextNewClass","defineMetadata","Symbol","for","configurable","enumerable","parentMetadata","create","e","c"],"mappings":"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","x_google_ignoreList":[0]}
|