@uql/core 3.11.0 → 3.12.0

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 CHANGED
@@ -3,12 +3,12 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
- # [3.11.0](https://github.com/rogerpadilla/uql/compare/@uql/core@3.10.0...@uql/core@3.11.0) (2026-02-21)
6
+ # [3.12.0](https://github.com/rogerpadilla/uql/compare/@uql/core@3.11.1...@uql/core@3.12.0) (2026-03-05)
7
7
 
8
8
 
9
9
  ### Features
10
10
 
11
- * add new feat 'withQuerier' to simplify get querier and auto release. ([eded8c0](https://github.com/rogerpadilla/uql/commit/eded8c0c412245d686178ed7caad4b8b082513ad))
11
+ * introduce JSONB dot-notation filtering in `where` clauses and fix `raw()` expression prefixing in logical operators. ([669257d](https://github.com/rogerpadilla/uql/commit/669257d497e08729094a9f178685ca6665b8b20b))
12
12
 
13
13
 
14
14
 
@@ -20,6 +20,45 @@ All notable changes to this project will be documented in this file. Please add
20
20
 
21
21
  date format is [yyyy-mm-dd]
22
22
 
23
+ ## [3.12.0] - 2026-03-05
24
+ ### New Features
25
+ - **JSONB Dot-Notation Operators**: Filter by nested JSON field paths directly in `$where` with full operator support (`$eq`, `$ne`, `$gt`, `$lt`, `$like`, `$ilike`, `$in`, `$nin`, `$regex`, etc.). Works across PostgreSQL, MySQL, and SQLite.
26
+ ```ts
27
+ await querier.findMany(User, {
28
+ $where: { 'settings.isArchived': { $ne: true } },
29
+ });
30
+ ```
31
+ - **Relation Filtering**: Filter by ManyToMany and OneToMany relations using automatic EXISTS subqueries. No more manual `raw()` joins.
32
+ ```ts
33
+ await querier.findMany(Item, {
34
+ $where: { tags: { name: 'important' } },
35
+ });
36
+ ```
37
+ - **`Json<T>` Marker Type**: Wrap JSONB field types with `Json<T>` to ensure they are classified as `FieldKey` (not `RelationKey`), enabling type-safe usage in `$where`, `$select`, and `$sort`.
38
+ ```ts
39
+ @Field({ type: 'jsonb' })
40
+ settings?: Json<{ isArchived?: boolean }>;
41
+ ```
42
+ - **`JsonFieldPaths<E>` Autocompletion**: Template literal type that derives valid dot-notation paths from `Json<T>` fields (e.g., `'kind.public' | 'kind.private'`). Provides IDE autocompletion for JSONB `$where` queries without restricting arbitrary string paths.
43
+
44
+ ### Bug Fixes
45
+ - **raw() String Prefix Fix**: String-based `raw()` values in `$and`/`$or` are no longer incorrectly table-prefixed (e.g., `raw("kind IS NOT NULL")` previously produced `resource.kind IS NOT NULL` instead of `kind IS NOT NULL`).
46
+
47
+ ### Improvements & Refactoring
48
+ - **DRY JSON Config**: Extracted `getBaseJsonConfig()` in each dialect — `$elemMatch` and dot-notation now compose from a single config source, eliminating ~20 lines of duplication.
49
+ - **Extracted `normalizeWhereValue()`**: Deduplicated the `Array→$in / object→passthrough / scalar→$eq` normalization used by both regular field and JSON path comparisons.
50
+ - **Cleaner Dot-Notation Detection**: Uses `indexOf`+`slice` instead of two `split('.')` calls for efficient dot-path parsing.
51
+ - **Relation Safety Guard**: `compareRelation()` now throws a descriptive `TypeError` if `rel.references` is missing, instead of a cryptic undefined crash.
52
+ - **TypeScript 6 Compatibility**: Fixed `QueryWhereMap` circular type reference and expanded `QueryWhereOptions.clause` union.
53
+
54
+ ### Test Coverage
55
+ - **46 new tests** across 3 dialects (base, PostgreSQL, SQLite) covering all new features and edge cases. Total: **1561 tests passing**.
56
+
57
+ ## [3.11.1] - 2026-02-26
58
+ ### Improvements
59
+ - **Expanded ColumnType Aliases**: Added `integer`, `tinyint`, `bool`, `datetime`, and `smallserial` as first-class `ColumnType` values (aliases for `int`, `boolean`, `timestamp`, `smallserial`, and `serial` respectively). Users can now use standard SQL keywords interchangeably (e.g., `integer` or `int`, `bool` or `boolean`, `datetime` or `timestamp`).
60
+ - **Auto-Increment Fix**: `smallserial` columns are now correctly detected as auto-incrementing, consistent with `serial` and `bigserial`.
61
+
23
62
  ## [3.11.0] - 2026-02-21
24
63
  ### New Features
25
64
  - **Scoped Querier**: Added `pool.withQuerier(callback)` — the non-transactional counterpart to `pool.transaction()`. Acquires a querier, runs the callback, and guarantees release via `try/finally`. Useful for scoping connection lifetime without transaction overhead.
package/README.md CHANGED
@@ -112,7 +112,7 @@ UQL separates the **intent** of your data from its **storage**. Both properties
112
112
  externalId?: string;
113
113
 
114
114
  @Field({ type: 'json' }) // → JSONB (Postgres), JSON (MySQL), TEXT (SQLite)
115
- metadata?: Record<string, unknown>;
115
+ metadata?: Json<{ theme?: string }>;
116
116
 
117
117
  // Logical types with constraints - portable with control
118
118
  @Field({ type: 'varchar', length: 500 })
@@ -131,7 +131,7 @@ statusCode?: number;
131
131
 
132
132
  ```ts
133
133
  import { v7 as uuidv7 } from 'uuid';
134
- import { Entity, Id, Field, OneToOne, OneToMany, ManyToOne, ManyToMany, type Relation } from '@uql/core';
134
+ import { Entity, Id, Field, OneToOne, OneToMany, ManyToOne, ManyToMany, type Relation, type Json } from '@uql/core';
135
135
 
136
136
  @Entity()
137
137
  export class User {
@@ -314,6 +314,38 @@ export class Item {
314
314
 
315
315
  &nbsp;
316
316
 
317
+ ### JSONB Operators & Relation Filtering
318
+
319
+ Query nested JSON fields using **type-safe dot-notation** with full operator support. Wrap fields with `Json<T>` to get IDE autocompletion for valid paths. UQL generates the correct SQL for each dialect.
320
+
321
+ ```ts
322
+ // Filter by nested JSONB field paths
323
+ const items = await querier.findMany(Company, {
324
+ $where: {
325
+ 'settings.isArchived': { $ne: true },
326
+ 'settings.priority': { $gte: 5 },
327
+ },
328
+ });
329
+ ```
330
+
331
+ **PostgreSQL:** `WHERE ("settings"->>'isArchived') <> $1 AND (("settings"->>'priority'))::numeric >= $2`
332
+ **SQLite:** `WHERE json_extract("settings", '$.isArchived') <> ? AND CAST(json_extract("settings", '$.priority') AS REAL) >= ?`
333
+
334
+ Filter parent entities by their **ManyToMany** or **OneToMany** relations using automatic EXISTS subqueries:
335
+
336
+ ```ts
337
+ // Find posts that have a tag named 'typescript'
338
+ const posts = await querier.findMany(Post, {
339
+ $where: { tags: { name: 'typescript' } },
340
+ });
341
+ ```
342
+
343
+ **PostgreSQL:** `WHERE EXISTS (SELECT 1 FROM "PostTag" WHERE "PostTag"."postId" = "Post"."id" AND "PostTag"."tagId" IN (SELECT "Tag"."id" FROM "Tag" WHERE "Tag"."name" = $1))`
344
+
345
+ > **Pro Tip**: Wrap JSONB field types with `Json<T>` (e.g., `settings?: Json<{ isArchived?: boolean }>`) to get IDE autocompletion for dot-notation paths.
346
+
347
+ &nbsp;
348
+
317
349
  ### Thread-Safe Transactions
318
350
 
319
351
  UQL is one of the few ORMs with a **centralized serialization engine**. Transactions are guaranteed to be race-condition free.
@@ -1 +1 @@
1
- {"version":3,"file":"cc-BEf4wTUm.js","sources":["../../../../node_modules/.bun/@swc+helpers@0.5.18/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]}
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]}