@arcaelas/dynamite 1.0.1 → 1.0.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/build/core/table.js.map +1 -0
- package/build/core/wrapper.js.map +1 -0
- package/build/decorators/created_at.js.map +1 -0
- package/build/decorators/default.js.map +1 -0
- package/build/decorators/index.js.map +1 -0
- package/build/decorators/index_sort.js.map +1 -0
- package/build/decorators/mutate.js.map +1 -0
- package/build/decorators/name.js.map +1 -0
- package/build/decorators/not_null.js.map +1 -0
- package/build/decorators/primary_key.js.map +1 -0
- package/build/decorators/updated_at.js.map +1 -0
- package/build/decorators/validate.js.map +1 -0
- package/build/index.js +1 -1
- package/build/index.js.map +4 -4
- package/build/utils/naming.js.map +1 -0
- package/package.json +6 -4
- package/build/__tests__/crud.spec.d.ts +0 -1
- package/build/__tests__/crud.spec.js +0 -123
- package/build/__tests__/crud.spec.js.map +0 -1
- package/build/__tests__/decorators.spec.d.ts +0 -1
- package/build/__tests__/decorators.spec.js +0 -183
- package/build/__tests__/decorators.spec.js.map +0 -1
- package/build/__tests__/instance-crud.spec.d.ts +0 -1
- package/build/__tests__/instance-crud.spec.js +0 -82
- package/build/__tests__/instance-crud.spec.js.map +0 -1
- package/build/src/core/table.js.map +0 -1
- package/build/src/core/wrapper.js.map +0 -1
- package/build/src/decorators/created_at.js.map +0 -1
- package/build/src/decorators/default.js.map +0 -1
- package/build/src/decorators/index.js.map +0 -1
- package/build/src/decorators/index_sort.js.map +0 -1
- package/build/src/decorators/mutate.js.map +0 -1
- package/build/src/decorators/name.js.map +0 -1
- package/build/src/decorators/not_null.js.map +0 -1
- package/build/src/decorators/primary_key.js.map +0 -1
- package/build/src/decorators/updated_at.js.map +0 -1
- package/build/src/decorators/validate.js.map +0 -1
- package/build/src/index.js +0 -31
- package/build/src/index.js.map +0 -1
- package/build/src/utils/naming.js.map +0 -1
- package/build/tests/crud.spec.d.ts +0 -1
- package/build/tests/crud.spec.js +0 -123
- package/build/tests/crud.spec.js.map +0 -1
- package/build/tests/decorators.spec.d.ts +0 -1
- package/build/tests/decorators.spec.js +0 -183
- package/build/tests/decorators.spec.js.map +0 -1
- package/build/tests/instance-crud.spec.d.ts +0 -1
- package/build/tests/instance-crud.spec.js +0 -82
- package/build/tests/instance-crud.spec.js.map +0 -1
- package/tsconfig.json +0 -32
- /package/build/{src/core → core}/table.d.ts +0 -0
- /package/build/{src/core → core}/table.js +0 -0
- /package/build/{src/core → core}/wrapper.d.ts +0 -0
- /package/build/{src/core → core}/wrapper.js +0 -0
- /package/build/{src/decorators → decorators}/created_at.d.ts +0 -0
- /package/build/{src/decorators → decorators}/created_at.js +0 -0
- /package/build/{src/decorators → decorators}/default.d.ts +0 -0
- /package/build/{src/decorators → decorators}/default.js +0 -0
- /package/build/{src/decorators → decorators}/index.d.ts +0 -0
- /package/build/{src/decorators → decorators}/index.js +0 -0
- /package/build/{src/decorators → decorators}/index_sort.d.ts +0 -0
- /package/build/{src/decorators → decorators}/index_sort.js +0 -0
- /package/build/{src/decorators → decorators}/mutate.d.ts +0 -0
- /package/build/{src/decorators → decorators}/mutate.js +0 -0
- /package/build/{src/decorators → decorators}/name.d.ts +0 -0
- /package/build/{src/decorators → decorators}/name.js +0 -0
- /package/build/{src/decorators → decorators}/not_null.d.ts +0 -0
- /package/build/{src/decorators → decorators}/not_null.js +0 -0
- /package/build/{src/decorators → decorators}/primary_key.d.ts +0 -0
- /package/build/{src/decorators → decorators}/primary_key.js +0 -0
- /package/build/{src/decorators → decorators}/updated_at.d.ts +0 -0
- /package/build/{src/decorators → decorators}/updated_at.js +0 -0
- /package/build/{src/decorators → decorators}/validate.d.ts +0 -0
- /package/build/{src/decorators → decorators}/validate.js +0 -0
- /package/build/{src/index.d.ts → index.d.ts} +0 -0
- /package/build/{src/utils → utils}/naming.d.ts +0 -0
- /package/build/{src/utils → utils}/naming.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/core/table.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../../src/core/wrapper.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAwEH,oCAOC;AAKD,oCAWC;AAlDD;;;GAGG;AACH,MAAM,OAAO,GAAY,IAAI,GAAG,EAAE,CAAC;AACnC,kBAAe,OAAO,CAAC;AAEvB,wEAAwE;AACxE,wEAAwE;AACxE,wEAAwE;AACxE;;;;;;GAMG;AACU,QAAA,KAAK,GAAkB,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAE9D,wEAAwE;AACxE,wEAAwE;AACxE,wEAAwE;AAExE;;;GAGG;AACH,SAAgB,YAAY,CAAC,IAAc,EAAE,SAAiB;IAC5D,IAAI,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY,CAC1B,KAAmB,EACnB,IAAqB,EACrB,UAAkB;IAElB,IAAI,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,GAAG,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QACrD,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"created_at.js","sourceRoot":"","sources":["../../src/decorators/created_at.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;;;AAOH,4BAEC;AAPD,wDAAgC;AAEhC;;GAEG;AACH,SAAwB,SAAS;IAC/B,OAAO,IAAA,iBAAO,EAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AACjD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default.js","sourceRoot":"","sources":["../../src/decorators/default.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAKH,0BAkBC;AArBD,6CAA4E;AAC5E,4CAAgD;AAEhD,SAAwB,OAAO,CAAC,OAAsB;IACpD,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;QAClC,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,CAAC,MAAc,EAAE,IAAqB,EAAQ,EAAE;QACrD,MAAM,IAAI,GAAI,MAAc,CAAC,WAAW,CAAC;QACzC,MAAM,KAAK,GAAG,IAAA,sBAAY,EAAC,IAAI,EAAE,IAAA,sBAAa,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,IAAA,sBAAY,EAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAEvD,IAAI,MAAM,CAAC,OAAO;YAChB,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;QAEzB,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;YAChE,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,wEAAwE;AACxE,SAAS,aAAa,CAAC,KAAU,EAAE,GAAW,EAAE,IAAqB;IACnE,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE;QACjC,GAAG;YACD,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QACD,GAAG,CAAC,GAAY;YACd,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,eAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YAEjC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBACnD,GAAG,GAAG,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;YACxE,CAAC;YACD,IAAI,GAAG,CAAC,MAAM;gBAAE,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM;oBAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACzD,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACjB,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;oBAC7B,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;oBACjB,IAAI,CAAC,KAAK,IAAI;wBACZ,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;gBACtE,CAAC;YACH,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;QAClB,CAAC;QACD,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/decorators/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAKH,wBAgBC;AAnBD,6CAA6D;AAC7D,4CAAgD;AAEhD,SAAwB,KAAK;IAC3B,OAAO,CAAC,MAAc,EAAE,IAAqB,EAAQ,EAAE;QACrD,MAAM,IAAI,GAAI,MAAc,CAAC,WAAW,CAAC;QACzC,MAAM,KAAK,GAAG,IAAA,sBAAY,EAAC,IAAI,EAAE,IAAA,sBAAa,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAE3D,uBAAuB;QACvB,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACjE,IAAI,OAAO,IAAI,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CACb,YAAY,IAAI,CAAC,IAAI,2BAA2B,OAAO,CAAC,IAAI,GAAG,CAChE,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,IAAA,sBAAY,EAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACpD,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC;IACnB,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index_sort.js","sourceRoot":"","sources":["../../src/decorators/index_sort.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAKH,4BAsBC;AAzBD,6CAA6D;AAC7D,4CAAgD;AAEhD,SAAwB,SAAS;IAC/B,OAAO,CAAC,MAAc,EAAE,IAAqB,EAAQ,EAAE;QACrD,MAAM,IAAI,GAAI,MAAc,CAAC,WAAW,CAAC;QACzC,MAAM,KAAK,GAAG,IAAA,sBAAY,EAAC,IAAI,EAAE,IAAA,sBAAa,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAE3D,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAClE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,+BAA+B,IAAI,CAAC,IAAI,0BAA0B,CACnE,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACrE,IAAI,OAAO,IAAI,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CACb,YAAY,IAAI,CAAC,IAAI,sBAAsB,OAAO,CAAC,IAAI,GAAG,CAC3D,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,IAAA,sBAAY,EAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACpD,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;IACvB,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mutate.js","sourceRoot":"","sources":["../../src/decorators/mutate.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAMH,yBAeC;AAlBD,6CAAoE;AACpE,4CAAgD;AAEhD,SAAwB,MAAM,CAAC,EAAU;IACvC,IAAI,OAAO,EAAE,KAAK,UAAU;QAAE,MAAM,IAAI,SAAS,CAAC,0BAA0B,CAAC,CAAC;IAE9E,OAAO,CAAC,MAAc,EAAE,IAAqB,EAAQ,EAAE;QACrD,MAAM,IAAI,GAAI,MAAc,CAAC,WAAW,CAAC;QACzC,MAAM,KAAK,GAAG,IAAA,sBAAY,EAAC,IAAI,EAAE,IAAA,sBAAa,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,IAAA,sBAAY,EAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAEpD,GAAG,CAAC,MAAM,KAAK,EAAE,CAAC;QAClB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEpB,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;YAChE,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,wEAAwE;AACxE,SAAS,aAAa,CAAC,KAAU,EAAE,GAAW,EAAE,IAAqB;IACnE,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE;QACjC,GAAG;YACD,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QACD,GAAG,CAAC,GAAY;YACd,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,eAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YAEjC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBACnD,GAAG,GAAG,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;YACxE,CAAC;YACD,IAAI,GAAG,CAAC,MAAM;gBAAE,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM;oBAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACzD,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACjB,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;oBAC7B,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;oBACjB,IAAI,CAAC,KAAK,IAAI;wBACZ,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;gBACtE,CAAC;YACH,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;QAClB,CAAC;QACD,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"name.js","sourceRoot":"","sources":["../../src/decorators/name.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AAKH,uBAoCC;AAvCD,6CAA6D;AAC7D,4CAAgD;AAEhD,SAAwB,IAAI,CAC1B,KAAa;IAEb,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,CAAC,MAAW,EAAE,IAAsB,EAAQ,EAAE;QACnD,MAAM,IAAI,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;QAC9D,MAAM,KAAK,GAAG,IAAA,sBAAY,EAAC,IAAI,EAAE,IAAA,sBAAa,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAE3D,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,8CAA8C;YAE9C,MAAM,IAAI,GAAG,IAAA,sBAAa,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEtC,sDAAsD;YACtD,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC9D,MAAM,IAAI,KAAK,CACb,YAAY,IAAI,CAAC,IAAI,gCAAgC,KAAK,CAAC,IAAI,GAAG,CACnE,CAAC;YACJ,CAAC;YACD,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,4CAA4C;YAE5C,MAAM,GAAG,GAAG,IAAA,sBAAY,EAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAE7C,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CACb,eAAe,MAAM,CAAC,IAAI,CAAC,8BAA8B,GAAG,CAAC,IAAI,GAAG,CACrE,CAAC;YACJ,CAAC;YACD,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC;QACnB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"not_null.js","sourceRoot":"","sources":["../../src/decorators/not_null.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;;;AAOH,0BAMC;AAXD,0DAAkC;AAElC;;GAEG;AACH,SAAwB,OAAO;IAC7B,OAAQ,kBAAgB,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACtC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACxD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,OAAO,KAAK,CAAC;QACnE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"primary_key.js","sourceRoot":"","sources":["../../src/decorators/primary_key.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;AAWH,6BASC;AAlBD,oDAA4B;AAC5B,8DAAqC;AAErC;;;;;GAKG;AACH,SAAwB,UAAU,CAAC,IAAI,GAAG,SAAS;IACjD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QAC7C,MAAM,IAAI,SAAS,CAAC,iDAAiD,CAAC,CAAC;IACzE,CAAC;IAED,OAAO,CAAC,MAAc,EAAE,IAAqB,EAAQ,EAAE;QACrD,IAAA,eAAK,GAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,gBAAgB;QACvC,IAAA,oBAAS,GAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW;IACxC,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updated_at.js","sourceRoot":"","sources":["../../src/decorators/updated_at.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;AAOH,4BAEC;AAPD,sDAA8B;AAE9B;;GAEG;AACH,SAAwB,SAAS;IAC/B,OAAO,IAAA,gBAAM,EAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/decorators/validate.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAKH,2BAsBC;AAzBD,6CAA4E;AAC5E,4CAAgD;AAEhD,SAAwB,QAAQ,CAC9B,UAEqC;IAErC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IACnE,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,UAAU,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,SAAS,CAAC,8BAA8B,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,CAAC,MAAc,EAAE,IAAqB,EAAQ,EAAE;QACrD,MAAM,IAAI,GAAI,MAAc,CAAC,WAAW,CAAC;QACzC,MAAM,KAAK,GAAG,IAAA,sBAAY,EAAC,IAAI,EAAE,IAAA,sBAAa,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,IAAA,sBAAY,EAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAEpD,GAAG,CAAC,QAAQ,KAAK,EAAE,CAAC;QACpB,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QAE3B,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;YAChE,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,wEAAwE;AACxE,SAAS,aAAa,CAAC,KAAU,EAAE,GAAW,EAAE,IAAqB;IACnE,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE;QACjC,GAAG;YACD,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QACD,GAAG,CAAC,GAAY;YACd,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,eAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YAEjC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBACnD,GAAG,GAAG,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;YACxE,CAAC;YACD,IAAI,GAAG,CAAC,MAAM;gBAAE,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM;oBAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACzD,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACjB,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;oBAC7B,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;oBACjB,IAAI,CAAC,KAAK,IAAI;wBACZ,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;gBACtE,CAAC;YACH,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;QAClB,CAAC;QACD,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;AACL,CAAC"}
|
package/build/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var R=Object.create;var P=Object.defineProperty;var $=Object.getOwnPropertyDescriptor;var V=Object.getOwnPropertyNames;var q=Object.getPrototypeOf,W=Object.prototype.hasOwnProperty;var F=(r,t)=>{for(var e in t)P(r,e,{get:t[e],enumerable:!0})},v=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of V(t))!W.call(r,o)&&o!==e&&P(r,o,{get:()=>t[o],enumerable:!(n=$(t,o))||n.enumerable});return r};var B=(r,t,e)=>(e=r!=null?R(q(r)):{},v(t||!r||!r.__esModule?P(e,"default",{value:r,enumerable:!0}):e,r)),L=r=>v(P({},"__esModule",{value:!0}),r);var _={};F(_,{CreatedAt:()=>M,Default:()=>h,Index:()=>g,IndexSort:()=>b,Mutate:()=>x,Name:()=>D,NotNull:()=>N,PrimaryKey:()=>O,Table:()=>w,UpdatedAt:()=>k,Validate:()=>S,connect:()=>I});module.exports=L(_);var c=require("@aws-sdk/client-dynamodb"),p=require("@aws-sdk/util-dynamodb");var C=new Map,E=C,u=Symbol("dynamite:values");function f(r,t){let e=C.get(r);return e||(e={name:t,columns:new Map},C.set(r,e)),e}function m(r,t,e){let n=r.columns.get(t);return n||(n={name:e,mutate:[],validate:[]},r.columns.set(t,n)),n}var l;function I(r){l=new c.DynamoDBClient(r)}async function j(r){if(!l)throw new Error("connect() no llamado");let t=E.get(r);if(!t)throw new Error(`Clase ${r.name} no registrada en wrapper`);let e=[...t.columns.values()],n=e.find(d=>d.index);if(!n)throw new Error(`PartitionKey faltante en ${r.name}`);let o=e.find(d=>d.indexSort),a=new Map;a.set(n.name,"S"),o&&a.set(o.name,"S");let i=[{AttributeName:n.name,KeyType:"HASH"}];o&&o.name!==n.name&&i.push({AttributeName:o.name,KeyType:"RANGE"}),await l.send(new c.CreateTableCommand({TableName:t.name,BillingMode:"PAY_PER_REQUEST",AttributeDefinitions:[...a].map(([d,K])=>({AttributeName:d,AttributeType:K})),KeySchema:i}))}u;var w=class{constructor(t={}){T(),y(Object.getPrototypeOf(this).constructor).columns.forEach(n=>{n.name in t||(this[n.name]=void 0)}),Object.assign(this,t)}toJSON(){let t=y(Object.getPrototypeOf(this).constructor),e=this[u]??{},n={};for(let[o,a]of t.columns)o in e?n[a.name]=e[o]:o in this&&(n[a.name]=this[o]);return n}async save(){let t=this.id,e=this.constructor,n=this.toJSON();if(t==null){delete n.id;let o=await e.create(n);Object.assign(this,o)}else await e.update(String(t),n);return this}async update(t){let e=this.id;if(e==null)throw new Error("update() requiere id");return Object.assign(this,t),await this.constructor.update(String(e),this.toJSON()),this}async destroy(){let t=this.id;if(t==null)throw new Error("destroy() requiere id");await this.constructor.destroy(String(t))}static async create(t){let e=y(this),n=new this(t).toJSON(),o=()=>l.send(new c.PutItemCommand({TableName:e.name,Item:(0,p.marshall)(n,{removeUndefinedValues:!0})}));try{await o()}catch(a){if(a?.name==="ResourceNotFoundException")await j(this),await o();else throw a}return new this(t)}static async update(t,e){let n=y(this),o={...e,id:t},a=()=>l.send(new c.PutItemCommand({TableName:n.name,Item:(0,p.marshall)(o,{removeUndefinedValues:!0})}));try{await a()}catch(i){if(i?.name==="ResourceNotFoundException")await j(this),await a();else throw i}}static async destroy(t){T();try{await l.send(new c.DeleteItemCommand({TableName:y(this).name,Key:(0,p.marshall)({id:t})}))}catch(e){if(e.name==="ResourceNotFoundException")return null;throw e}return null}static async where(){T();try{return((await l.send(new c.ScanCommand({TableName:y(this).name}))).Items??[]).map(e=>new this((0,p.unmarshall)(e)))}catch(t){if(t.name==="ResourceNotFoundException")return[];throw t}}};function T(){if(!l)throw new Error("connect() debe llamarse antes de usar Table")}function y(r){let t=E.get(r);if(!t)throw new Error(`Metadata no encontrada para ${r.name}`);return t}var A=B(require("pluralize"));function s(r){let t=r.replace(/([a-z0-9])([A-Z])/g,"$1_$2").toLowerCase();return(0,A.default)(t)}function h(r){if(typeof r!="function")throw new TypeError("@Default requiere una funci\xF3n factory");return(t,e)=>{let n=t.constructor,o=f(n,s(n.name)),a=m(o,e,String(e));if(a.default)throw new Error(`@Default duplicado en '${String(e)}'`);a.default=r,Object.getOwnPropertyDescriptor(n.prototype,e)?.set||U(n.prototype,a,e)}}function U(r,t,e){Object.defineProperty(r,e,{get(){return(this[u]??{})[e]},set(n){let o=this[u]??={};if(n===void 0&&t.default!==void 0&&(n=typeof t.default=="function"?t.default():t.default),t.mutate)for(let a of t.mutate)n=a(n);if(t.validate)for(let a of t.validate){let i=a(n);if(i!==!0)throw new Error(typeof i=="string"?i:"Validaci\xF3n fallida")}o[e]=n},enumerable:!0,configurable:!0})}function g(){return(r,t)=>{let e=r.constructor,n=f(e,s(e.name)),o=[...n.columns.values()].find(i=>i.index);if(o&&o!==n.columns.get(t))throw new Error(`La tabla ${e.name} ya tiene PartitionKey (${o.name})`);let a=m(n,t,String(t));a.index=!0}}function b(){return(r,t)=>{let e=r.constructor,n=f(e,s(e.name));if(![...n.columns.values()].some(d=>d.index))throw new Error(`PartitionKey no definido en ${e.name}; declara @Index primero`);let a=[...n.columns.values()].find(d=>d.indexSort);if(a&&a!==n.columns.get(t))throw new Error(`La tabla ${e.name} ya tiene SortKey (${a.name})`);let i=m(n,t,String(t));i.indexSort=!0}}function x(r){if(typeof r!="function")throw new TypeError("@Mutate requiere funci\xF3n");return(t,e)=>{let n=t.constructor,o=f(n,s(n.name)),a=m(o,e,String(e));a.mutate??=[],a.mutate.push(r),Object.getOwnPropertyDescriptor(n.prototype,e)?.set||H(n.prototype,a,e)}}function H(r,t,e){Object.defineProperty(r,e,{get(){return(this[u]??{})[e]},set(n){let o=this[u]??={};if(n===void 0&&t.default!==void 0&&(n=typeof t.default=="function"?t.default():t.default),t.mutate)for(let a of t.mutate)n=a(n);if(t.validate)for(let a of t.validate){let i=a(n);if(i!==!0)throw new Error(typeof i=="string"?i:"Validaci\xF3n fallida")}o[e]=n},enumerable:!0,configurable:!0})}function D(r){if(!r||typeof r!="string")throw new TypeError("@Name requiere una cadena no vac\xEDa");return(t,e)=>{let n=e===void 0?t:t.constructor,o=f(n,s(n.name));if(e===void 0){let a=s(n.name);if(o.name!==a&&o.name!==r&&o.name)throw new Error(`La clase ${n.name} ya tiene un @Name distinto (${o.name})`);o.name=r}else{let a=m(o,e,r);if(a.name&&a.name!==r)throw new Error(`La columna '${String(e)}' ya tiene @Name distinto (${a.name})`);a.name=r}}}function S(r){let t=Array.isArray(r)?r:[r];if(!t.length||t.some(e=>typeof e!="function"))throw new TypeError("@Validate requiere funciones");return(e,n)=>{let o=e.constructor,a=f(o,s(o.name)),i=m(a,n,String(n));i.validate??=[],i.validate.push(...t),Object.getOwnPropertyDescriptor(o.prototype,n)?.set||J(o.prototype,i,n)}}function J(r,t,e){Object.defineProperty(r,e,{get(){return(this[u]??{})[e]},set(n){let o=this[u]??={};if(n===void 0&&t.default!==void 0&&(n=typeof t.default=="function"?t.default():t.default),t.mutate)for(let a of t.mutate)n=a(n);if(t.validate)for(let a of t.validate){let i=a(n);if(i!==!0)throw new Error(typeof i=="string"?i:"Validaci\xF3n fallida")}o[e]=n},enumerable:!0,configurable:!0})}function M(){return h(()=>new Date().toISOString())}function N(){return S((r,t)=>!(r==null||typeof r=="string"&&r.trim()===""))}function O(r="primary"){if(typeof r!="string"||!r.trim())throw new TypeError("@PrimaryKey requiere un nombre de \xEDndice v\xE1lido");return(t,e)=>{g()(t,e),b()(t,e)}}function k(){return x(()=>new Date().toISOString())}0&&(module.exports={CreatedAt,Default,Index,IndexSort,Mutate,Name,NotNull,PrimaryKey,Table,UpdatedAt,Validate,connect});
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/build/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/index.ts"],
|
|
4
|
-
"sourcesContent": ["export { connect, default as Table } from \"./core/table\";\n\n// Decoradores\nexport { default as Default } from \"./decorators/default\";\nexport { default as Index } from \"./decorators/index\";\nexport { default as IndexSort } from \"./decorators/index_sort\";\nexport { default as Mutate } from \"./decorators/mutate\";\nexport { default as Name } from \"./decorators/name\";\nexport { default as Validate } from \"./decorators/validate\";\n\nexport { default as CreatedAt } from \"./decorators/created_at\";\nexport { default as NotNull } from \"./decorators/not_null\";\nexport { default as PrimaryKey } from \"./decorators/primary_key\";\nexport { default as UpdatedAt } from \"./decorators/updated_at\";\n"],
|
|
5
|
-
"mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,
|
|
6
|
-
"names": ["index_exports", "__export", "__toCommonJS", "
|
|
3
|
+
"sources": ["../src/index.ts", "../src/core/table.ts", "../src/core/wrapper.ts", "../src/utils/naming.ts", "../src/decorators/default.ts", "../src/decorators/index.ts", "../src/decorators/index_sort.ts", "../src/decorators/mutate.ts", "../src/decorators/name.ts", "../src/decorators/validate.ts", "../src/decorators/created_at.ts", "../src/decorators/not_null.ts", "../src/decorators/primary_key.ts", "../src/decorators/updated_at.ts"],
|
|
4
|
+
"sourcesContent": ["export { connect, default as Table } from \"./core/table\";\n\n// Decoradores\nexport { default as Default } from \"./decorators/default\";\nexport { default as Index } from \"./decorators/index\";\nexport { default as IndexSort } from \"./decorators/index_sort\";\nexport { default as Mutate } from \"./decorators/mutate\";\nexport { default as Name } from \"./decorators/name\";\nexport { default as Validate } from \"./decorators/validate\";\n\nexport { default as CreatedAt } from \"./decorators/created_at\";\nexport { default as NotNull } from \"./decorators/not_null\";\nexport { default as PrimaryKey } from \"./decorators/primary_key\";\nexport { default as UpdatedAt } from \"./decorators/updated_at\";\n", "/* src/core/table.ts\n * Dinamite ORM \u2014 runtime\n * --------------------------------------------------\n * CRUD + autocreaci\u00F3n de tablas (DynamoDB v3)\n * Serializaci\u00F3n estricta mediante toJSON()\n * \u00A9 2025 Miguel Alejandro\n */\nimport {\n CreateTableCommand,\n DeleteItemCommand,\n DynamoDBClient,\n DynamoDBClientConfig,\n PutItemCommand,\n ScanCommand,\n} from \"@aws-sdk/client-dynamodb\";\nimport { marshall, unmarshall } from \"@aws-sdk/util-dynamodb\";\nimport wrapper, { STORE, WrapperEntry } from \"./wrapper\";\n\n/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Conexi\u00F3n global \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\nlet client: DynamoDBClient | undefined;\nexport function connect(cfg: DynamoDBClientConfig): void {\n client = new DynamoDBClient(cfg);\n}\n\n/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Creaci\u00F3n autom\u00E1tica de tablas a partir del wrapper \u2500\u2500\u2500\u2500\u2500\u2500 */\nasync function createTable(ctor: Function): Promise<void> {\n if (!client) throw new Error(\"connect() no llamado\");\n const meta = wrapper.get(ctor);\n if (!meta) throw new Error(`Clase ${ctor.name} no registrada en wrapper`);\n\n const cols = [...meta.columns.values()];\n const pk = cols.find((c) => c.index);\n if (!pk) throw new Error(`PartitionKey faltante en ${ctor.name}`);\n\n const sk = cols.find((c) => c.indexSort);\n\n const attr = new Map<string, \"S\" | \"N\" | \"B\">();\n attr.set(pk.name, \"S\");\n if (sk) attr.set(sk.name, \"S\");\n\n type KS = { AttributeName: string; KeyType: \"HASH\" | \"RANGE\" };\n const schema: KS[] = [{ AttributeName: pk.name, KeyType: \"HASH\" }];\n if (sk && sk.name !== pk.name)\n schema.push({ AttributeName: sk.name, KeyType: \"RANGE\" });\n\n await client.send(\n new CreateTableCommand({\n TableName: meta.name,\n BillingMode: \"PAY_PER_REQUEST\",\n AttributeDefinitions: [...attr].map(([AttributeName, AttributeType]) => ({\n AttributeName,\n AttributeType,\n })),\n KeySchema: schema,\n })\n );\n}\n\n/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Table \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\nexport default class Table<T extends object = object> {\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n private [STORE]!: { [K in keyof T]?: T[K] };\n\n constructor(data: Partial<T> = {}) {\n requireClient();\n const meta = mustMeta(Object.getPrototypeOf(this).constructor);\n\n /* defaults via setters */\n meta.columns.forEach((c) => {\n if (!(c.name in data)) (this as any)[c.name] = undefined;\n });\n\n Object.assign(this, data);\n }\n\n /* -------- serializa SOLO columnas v\u00E1lidas -------- */\n toJSON(): Record<string, unknown> {\n const meta = mustMeta(Object.getPrototypeOf(this).constructor);\n const buf = (this as any)[STORE] ?? {};\n const out: Record<string, unknown> = {};\n\n for (const [prop, col] of meta.columns) {\n if (prop in buf) out[col.name] = buf[prop];\n else if (prop in this) out[col.name] = (this as any)[prop];\n }\n return out;\n }\n\n /* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 M\u00E9todos de instancia \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n async save(): Promise<this> {\n // @ts-ignore\n const id: unknown = this.id;\n const Ctor = this.constructor as typeof Table<any>;\n const record = this.toJSON();\n\n if (id === undefined || id === null) {\n delete (record as any).id;\n const fresh = await (Ctor as any).create(record);\n Object.assign(this, fresh);\n } else {\n await (Ctor as any).update(String(id), record);\n }\n return this;\n }\n\n async update(patch: Partial<T>): Promise<this> {\n // @ts-ignore\n const id: unknown = this.id;\n if (id === undefined || id === null)\n throw new Error(\"update() requiere id\");\n\n Object.assign(this, patch);\n const Ctor = this.constructor as typeof Table<any>;\n await (Ctor as any).update(String(id), this.toJSON());\n return this;\n }\n\n async destroy(): Promise<void> {\n // @ts-ignore\n const id: unknown = this.id;\n if (id === undefined || id === null)\n throw new Error(\"destroy() requiere id\");\n const Ctor = this.constructor as typeof Table<any>;\n await (Ctor as any).destroy(String(id));\n }\n\n /* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 CRUD est\u00E1ticos \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n static async create<M extends Table>(\n this: new (d?: Partial<M>) => M,\n data: Partial<M>\n ): Promise<M> {\n const meta = mustMeta(this);\n const payload = new this(data).toJSON(); // filtrado\n\n const put = () =>\n client!.send(\n new PutItemCommand({\n TableName: meta.name,\n Item: marshall(payload, { removeUndefinedValues: true }),\n })\n );\n\n try {\n await put();\n } catch (err: any) {\n if (err?.name === \"ResourceNotFoundException\") {\n await createTable(this);\n await put();\n } else throw err;\n }\n return new this(data);\n }\n\n static async update<M extends Table>(\n this: new (d?: Partial<M>) => M,\n id: string,\n record: Partial<M> // \u2190 ya es JSON completo desde instancia\n ): Promise<void> {\n const meta = mustMeta(this);\n const payload = { ...record, id };\n\n const put = () =>\n client!.send(\n new PutItemCommand({\n TableName: meta.name,\n Item: marshall(payload, { removeUndefinedValues: true }),\n })\n );\n\n try {\n await put();\n } catch (err: any) {\n if (err?.name === \"ResourceNotFoundException\") {\n await createTable(this);\n await put();\n } else throw err;\n }\n }\n\n static async destroy<M extends Table>(\n this: new () => M,\n id: string\n ): Promise<null> {\n requireClient();\n try {\n await client!.send(\n new DeleteItemCommand({\n TableName: mustMeta(this).name,\n Key: marshall({ id }),\n })\n );\n } catch (err: any) {\n if (err.name === \"ResourceNotFoundException\") return null;\n throw err;\n }\n return null;\n }\n\n static async where<M extends Table>(this: new (d?: any) => M): Promise<M[]> {\n requireClient();\n try {\n const res = await client!.send(\n new ScanCommand({ TableName: mustMeta(this).name })\n );\n return (res.Items ?? []).map((i) => new this(unmarshall(i)));\n } catch (err: any) {\n if (err.name === \"ResourceNotFoundException\") return [];\n throw err;\n }\n }\n}\n\n/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Utilidades internas \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\nfunction requireClient(): void {\n if (!client) throw new Error(\"connect() debe llamarse antes de usar Table\");\n}\nfunction mustMeta(ctor: Function): WrapperEntry {\n const meta = wrapper.get(ctor);\n if (!meta) throw new Error(`Metadata no encontrada para ${ctor.name}`);\n return meta;\n}\n\n/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Exportaciones internas \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\nexport { STORE };\nexport type { WrapperEntry };\n", "/* src/core/wrapper.ts\n * -------------------------------------------------\n * Registro central (in-memory) de la configuraci\u00F3n\n * declarativa de cada modelo. Agn\u00F3stico: no depende\n * de DynamoDB ni de otros m\u00F3dulos de la librer\u00EDa.\n *\n * \u00A9 2025 Miguel Alejandro\n */\n\n/* ------------------------------------------------------------------ */\n/* 1. Tipos utilitarios */\n/* ------------------------------------------------------------------ */\nexport type Inmutable = string | number | boolean | null | object;\n\nexport type Mutate = (value: any) => Inmutable;\nexport type Default = Inmutable | (() => Inmutable);\nexport type Validate = (value: any) => true | string;\n\n/* ------------------------------------------------------------------ */\n/* 2. Descripci\u00F3n de columna y tabla */\n/* ------------------------------------------------------------------ */\nexport interface Column {\n /** nombre f\u00EDsico en la tabla (DynamoDB) */\n name: string;\n\n /* Decoradores b\u00E1sicos */\n default?: Default;\n mutate?: Mutate[];\n validate?: Validate[];\n\n /* Metadatos de \u00EDndice / unicidad */\n index?: true; // Partition Key\n indexSort?: true; // Sort Key\n unique?: true; // constraint l\u00F3gico (no se valida en Dynamo)\n}\n\n/**\n * Configuraci\u00F3n completa por tabla\n */\nexport interface WrapperEntry {\n /** Nombre f\u00EDsico de la tabla (snake_plural o @Name) */\n name: string;\n\n /** Columnas asociadas a la clase. key = propiedad (string|symbol) */\n columns: Map<string | symbol, Column>;\n}\n\n/* ------------------------------------------------------------------ */\n/* 3. Contenedor global */\n/* ------------------------------------------------------------------ */\nexport type Wrapper = Map<Function, WrapperEntry>;\n\n/**\n * Mapa singleton (clase \u2192 configuraci\u00F3n)\n * Exportado como default para uso interno de la librer\u00EDa.\n */\nconst wrapper: Wrapper = new Map();\nexport default wrapper;\n\n/* ------------------------------------------------------------------ */\n/* 4. S\u00EDmbolo de almacenamiento de valores reales */\n/* ------------------------------------------------------------------ */\n/**\n * Buffer privado en cada instancia de Table donde se guardan\n * los valores procesados por los setters virtuales.\n *\n * Se exporta para que los decoradores puedan leer/escribir,\n * pero **NO** se vuelve a exportar desde la ra\u00EDz del paquete.\n */\nexport const STORE: unique symbol = Symbol(\"dynamite:values\");\n\n/* ------------------------------------------------------------------ */\n/* 5. Peque\u00F1os helpers opcionales */\n/* ------------------------------------------------------------------ */\n\n/**\n * Asegura que exista la entrada en el wrapper para la clase dada.\n * Devuelve la entrada (reci\u00E9n creada o existente).\n */\nexport function ensureConfig(ctor: Function, tableName: string): WrapperEntry {\n let entry = wrapper.get(ctor);\n if (!entry) {\n entry = { name: tableName, columns: new Map() };\n wrapper.set(ctor, entry);\n }\n return entry;\n}\n\n/**\n * Obtiene (o crea) el objeto Column para una propiedad concreta.\n */\nexport function ensureColumn(\n entry: WrapperEntry,\n prop: string | symbol,\n columnName: string\n): Column {\n let col = entry.columns.get(prop);\n if (!col) {\n col = { name: columnName, mutate: [], validate: [] };\n entry.columns.set(prop, col);\n }\n return col;\n}\n", "/* src/utils/naming.ts\n * -------------------------------------------------\n * Convierte Camel/Pascal \u2192 snake_case y pluraliza.\n * Se importa all\u00ED donde se necesite.\n */\nimport pluralize from \"pluralize\";\n\nexport function toSnakePlural(input: string): string {\n // camelCase / PascalCase \u2192 snake_case\n const snake = input.replace(/([a-z0-9])([A-Z])/g, \"$1_$2\").toLowerCase();\n return pluralize(snake); // \u201Cuser\u201D \u2192 \u201Cusers\u201D, \u201Cstatus\u201D \u2192 \u201Cstatuses\u201D\u2026\n}\n", "/*\n * Dinamite ORM \u2014 @Default\n * -----------------------\n * Registra un valor por defecto y crea (si falta) el\n * getter/setter virtual de la propiedad.\n */\n\nimport { Column, STORE, ensureColumn, ensureConfig } from \"../core/wrapper\";\nimport { toSnakePlural } from \"../utils/naming\";\n\nexport default function Default(factory: () => unknown): PropertyDecorator {\n if (typeof factory !== \"function\") {\n throw new TypeError(\"@Default requiere una funci\u00F3n factory\");\n }\n\n return (target: object, prop: string | symbol): void => {\n const ctor = (target as any).constructor;\n const entry = ensureConfig(ctor, toSnakePlural(ctor.name));\n const column = ensureColumn(entry, prop, String(prop));\n\n if (column.default)\n throw new Error(`@Default duplicado en '${String(prop)}'`);\n column.default = factory;\n\n if (!Object.getOwnPropertyDescriptor(ctor.prototype, prop)?.set) {\n defineVirtual(ctor.prototype, column, prop);\n }\n };\n}\n\n/* ------------------------------------------------------------------ */\nfunction defineVirtual(proto: any, col: Column, prop: string | symbol): void {\n Object.defineProperty(proto, prop, {\n get() {\n return (this[STORE] ?? {})[prop];\n },\n set(val: unknown) {\n const buf = (this[STORE] ??= {});\n\n if (val === undefined && col.default !== undefined) {\n val = typeof col.default === \"function\" ? col.default() : col.default;\n }\n if (col.mutate) for (const m of col.mutate) val = m(val);\n if (col.validate) {\n for (const v of col.validate) {\n const r = v(val);\n if (r !== true)\n throw new Error(typeof r === \"string\" ? r : \"Validaci\u00F3n fallida\");\n }\n }\n buf[prop] = val;\n },\n enumerable: true,\n configurable: true,\n });\n}\n", "/*\n * Dinamite ORM \u2014 @Index (Partition Key)\n * -------------------------------------\n * Marca la propiedad como clave de partici\u00F3n.\n */\n\nimport { ensureColumn, ensureConfig } from \"../core/wrapper\";\nimport { toSnakePlural } from \"../utils/naming\";\n\nexport default function Index(): PropertyDecorator {\n return (target: object, prop: string | symbol): void => {\n const ctor = (target as any).constructor;\n const entry = ensureConfig(ctor, toSnakePlural(ctor.name));\n\n /* Evitar duplicados */\n const already = [...entry.columns.values()].find((c) => c.index);\n if (already && already !== entry.columns.get(prop)) {\n throw new Error(\n `La tabla ${ctor.name} ya tiene PartitionKey (${already.name})`\n );\n }\n\n const col = ensureColumn(entry, prop, String(prop));\n col.index = true;\n };\n}\n", "/*\n * Dinamite ORM \u2014 @IndexSort (Sort Key)\n * ------------------------------------\n * Marca la propiedad como clave de ordenamiento.\n */\n\nimport { ensureColumn, ensureConfig } from \"../core/wrapper\";\nimport { toSnakePlural } from \"../utils/naming\";\n\nexport default function IndexSort(): PropertyDecorator {\n return (target: object, prop: string | symbol): void => {\n const ctor = (target as any).constructor;\n const entry = ensureConfig(ctor, toSnakePlural(ctor.name));\n\n const pkExists = [...entry.columns.values()].some((c) => c.index);\n if (!pkExists) {\n throw new Error(\n `PartitionKey no definido en ${ctor.name}; declara @Index primero`\n );\n }\n\n const already = [...entry.columns.values()].find((c) => c.indexSort);\n if (already && already !== entry.columns.get(prop)) {\n throw new Error(\n `La tabla ${ctor.name} ya tiene SortKey (${already.name})`\n );\n }\n\n const col = ensureColumn(entry, prop, String(prop));\n col.indexSort = true;\n };\n}\n", "/*\n * Dinamite ORM \u2014 @Mutate\n * ----------------------\n * Registra funciones transformadoras para un campo y virtualiza\n * la propiedad si a\u00FAn no existe.\n */\n\nimport type { Column, Mutate } from \"../core/wrapper\";\nimport { STORE, ensureColumn, ensureConfig } from \"../core/wrapper\";\nimport { toSnakePlural } from \"../utils/naming\";\n\nexport default function Mutate(fn: Mutate): PropertyDecorator {\n if (typeof fn !== \"function\") throw new TypeError(\"@Mutate requiere funci\u00F3n\");\n\n return (target: object, prop: string | symbol): void => {\n const ctor = (target as any).constructor;\n const entry = ensureConfig(ctor, toSnakePlural(ctor.name));\n const col = ensureColumn(entry, prop, String(prop));\n\n col.mutate ??= [];\n col.mutate.push(fn);\n\n if (!Object.getOwnPropertyDescriptor(ctor.prototype, prop)?.set) {\n defineVirtual(ctor.prototype, col, prop);\n }\n };\n}\n\n/* ------------------------------------------------------------------ */\nfunction defineVirtual(proto: any, col: Column, prop: string | symbol): void {\n Object.defineProperty(proto, prop, {\n get() {\n return (this[STORE] ?? {})[prop];\n },\n set(val: unknown) {\n const buf = (this[STORE] ??= {});\n\n if (val === undefined && col.default !== undefined) {\n val = typeof col.default === \"function\" ? col.default() : col.default;\n }\n if (col.mutate) for (const m of col.mutate) val = m(val);\n if (col.validate) {\n for (const v of col.validate) {\n const r = v(val);\n if (r !== true)\n throw new Error(typeof r === \"string\" ? r : \"Validaci\u00F3n fallida\");\n }\n }\n buf[prop] = val;\n },\n enumerable: true,\n configurable: true,\n });\n}\n", "/*\n * Dinamite ORM \u2014 @Name\n * --------------------\n * \u2022 @Name(\"tabla\") \u2192 nombre f\u00EDsico de la tabla\n * \u2022 @Name(\"columna\") \u2192 alias de columna\n *\n * Permite sobrescribir el nombre AUTO-generado (snake_plural)\n * sin lanzar conflicto.\n */\n\nimport { ensureColumn, ensureConfig } from \"../core/wrapper\";\nimport { toSnakePlural } from \"../utils/naming\";\n\nexport default function Name(\n label: string\n): ClassDecorator & PropertyDecorator {\n if (!label || typeof label !== \"string\") {\n throw new TypeError(\"@Name requiere una cadena no vac\u00EDa\");\n }\n\n return (target: any, prop?: string | symbol): void => {\n const ctor = prop === undefined ? target : target.constructor;\n const entry = ensureConfig(ctor, toSnakePlural(ctor.name));\n\n if (prop === undefined) {\n /* ---------- Nombre de la tabla ---------- */\n\n const auto = toSnakePlural(ctor.name);\n\n // Solo error si ya se modific\u00F3 conscientemente antes.\n if (entry.name !== auto && entry.name !== label && entry.name) {\n throw new Error(\n `La clase ${ctor.name} ya tiene un @Name distinto (${entry.name})`\n );\n }\n entry.name = label;\n } else {\n /* ---------- Alias de columna ---------- */\n\n const col = ensureColumn(entry, prop, label);\n\n if (col.name && col.name !== label) {\n throw new Error(\n `La columna '${String(prop)}' ya tiene @Name distinto (${col.name})`\n );\n }\n col.name = label;\n }\n };\n}\n", "/*\n * Dinamite ORM \u2014 @Validate\n * ------------------------\n * Registra validadores y crea virtual si falta.\n */\n\nimport { Column, STORE, ensureColumn, ensureConfig } from \"../core/wrapper\";\nimport { toSnakePlural } from \"../utils/naming\";\n\nexport default function Validate(\n validators:\n | ((v: unknown) => true | string)\n | ((v: unknown) => true | string)[]\n): PropertyDecorator {\n const list = Array.isArray(validators) ? validators : [validators];\n if (!list.length || list.some((v) => typeof v !== \"function\")) {\n throw new TypeError(\"@Validate requiere funciones\");\n }\n\n return (target: object, prop: string | symbol): void => {\n const ctor = (target as any).constructor;\n const entry = ensureConfig(ctor, toSnakePlural(ctor.name));\n const col = ensureColumn(entry, prop, String(prop));\n\n col.validate ??= [];\n col.validate.push(...list);\n\n if (!Object.getOwnPropertyDescriptor(ctor.prototype, prop)?.set) {\n defineVirtual(ctor.prototype, col, prop);\n }\n };\n}\n\n/* ------------------------------------------------------------------ */\nfunction defineVirtual(proto: any, col: Column, prop: string | symbol): void {\n Object.defineProperty(proto, prop, {\n get() {\n return (this[STORE] ?? {})[prop];\n },\n set(val: unknown) {\n const buf = (this[STORE] ??= {});\n\n if (val === undefined && col.default !== undefined) {\n val = typeof col.default === \"function\" ? col.default() : col.default;\n }\n if (col.mutate) for (const m of col.mutate) val = m(val);\n if (col.validate) {\n for (const v of col.validate) {\n const r = v(val);\n if (r !== true)\n throw new Error(typeof r === \"string\" ? r : \"Validaci\u00F3n fallida\");\n }\n }\n buf[prop] = val;\n },\n enumerable: true,\n configurable: true,\n });\n}\n", "/*\n * Dinamite ORM \u2014 @CreatedAt Decorator (wrapper)\n * -------------------------------------------\n * Establece un valor por defecto con la fecha/hora actual (ISO\u2011string)\n * usando @Default.\n *\n * \u00A9 2025 Miguel Alejandro\n */\n\nimport Default from \"./default\";\n\n/**\n * Asigna autom\u00E1ticamente la fecha de creaci\u00F3n en nuevas instancias.\n */\nexport default function CreatedAt(): PropertyDecorator {\n return Default(() => new Date().toISOString());\n}\n", "/*\n * Dinamite ORM \u2014 @NotNull Decorator (wrapper)\n * ------------------------------------------\n * Valida que el valor no sea null, undefined ni cadena vac\u00EDa.\n * Internamente aplica @Validate con una funci\u00F3n sincr\u00F3nica.\n *\n * \u00A9 2025 Miguel Alejandro\n */\n\nimport Validate from \"./validate\";\n\n/**\n * Decorador wrapper que asegura no-null / no-empty.\n */\nexport default function NotNull(): PropertyDecorator {\n return (Validate as any)((value, key) => {\n if (value === null || value === undefined) return false;\n if (typeof value === \"string\" && value.trim() === \"\") return false;\n return true;\n });\n}\n", "/*\n * Dinamite ORM \u2014 @PrimaryKey\n * --------------------------\n * Declara simult\u00E1neamente Partition Key y Sort Key\n * sobre la misma propiedad.\n */\n\nimport Index from \"./index\";\nimport IndexSort from \"./index_sort\";\n\n/**\n * Atajo para definir clave primaria compuesta (PK + SK).\n * El par\u00E1metro `name` queda reservado por si en el futuro\n * se almacena un identificador l\u00F3gico de \u00EDndice, pero hoy\n * NO se pasa a ning\u00FAn decorador interno.\n */\nexport default function PrimaryKey(name = \"primary\"): PropertyDecorator {\n if (typeof name !== \"string\" || !name.trim()) {\n throw new TypeError(\"@PrimaryKey requiere un nombre de \u00EDndice v\u00E1lido\");\n }\n\n return (target: object, prop: string | symbol): void => {\n Index()(target, prop); // Partition Key\n IndexSort()(target, prop); // Sort Key\n };\n}\n", "/*\n * Dinamite ORM \u2014 @UpdatedAt Decorator (wrapper)\n * --------------------------------------------\n * Actualiza la fecha/hora cada vez que la propiedad recibe un nuevo valor\n * (incluyendo actualizaciones mediante Model.save()).\n * Internamente aplica @Mutate con una factory de timestamp ISO.\n *\n * \u00A9 2025 Miguel Alejandro\n */\n\nimport Mutate from \"./mutate\";\n\n/**\n * Actualiza autom\u00E1ticamente la marca temporal en cada asignaci\u00F3n.\n */\nexport default function UpdatedAt(): PropertyDecorator {\n return Mutate(() => new Date().toISOString());\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["index_exports", "__export", "CreatedAt", "Default", "Index", "IndexSort", "Mutate", "Name", "NotNull", "PrimaryKey", "Table", "UpdatedAt", "Validate", "connect", "__toCommonJS", "import_client_dynamodb", "import_util_dynamodb", "wrapper", "wrapper_default", "STORE", "ensureConfig", "ctor", "tableName", "entry", "ensureColumn", "prop", "columnName", "col", "client", "connect", "cfg", "createTable", "ctor", "meta", "wrapper_default", "cols", "pk", "c", "sk", "attr", "schema", "AttributeName", "AttributeType", "STORE", "Table", "data", "requireClient", "mustMeta", "buf", "out", "prop", "col", "id", "Ctor", "record", "fresh", "patch", "payload", "put", "err", "i", "import_pluralize", "toSnakePlural", "input", "snake", "pluralize", "Default", "factory", "target", "prop", "ctor", "entry", "ensureConfig", "toSnakePlural", "column", "ensureColumn", "defineVirtual", "proto", "col", "STORE", "val", "buf", "m", "v", "r", "Index", "target", "prop", "ctor", "entry", "ensureConfig", "toSnakePlural", "already", "c", "col", "ensureColumn", "IndexSort", "target", "prop", "ctor", "entry", "ensureConfig", "toSnakePlural", "c", "already", "col", "ensureColumn", "Mutate", "fn", "target", "prop", "ctor", "entry", "ensureConfig", "toSnakePlural", "col", "ensureColumn", "defineVirtual", "proto", "STORE", "val", "buf", "m", "v", "r", "Name", "label", "target", "prop", "ctor", "entry", "ensureConfig", "toSnakePlural", "auto", "col", "ensureColumn", "Validate", "validators", "list", "v", "target", "prop", "ctor", "entry", "ensureConfig", "toSnakePlural", "col", "ensureColumn", "defineVirtual", "proto", "STORE", "val", "buf", "m", "r", "CreatedAt", "Default", "NotNull", "Validate", "value", "key", "PrimaryKey", "name", "target", "prop", "Index", "IndexSort", "UpdatedAt", "Mutate"]
|
|
7
7
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"naming.js","sourceRoot":"","sources":["../../src/utils/naming.ts"],"names":[],"mappings":";;;;;AAOA,sCAIC;AAXD;;;;GAIG;AACH,0DAAkC;AAElC,SAAgB,aAAa,CAAC,KAAa;IACzC,wCAAwC;IACxC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IACzE,OAAO,IAAA,mBAAS,EAAC,KAAK,CAAC,CAAC,CAAC,2CAA2C;AACtE,CAAC"}
|
package/package.json
CHANGED
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
"reflect-metadata": "^0.2.2",
|
|
22
22
|
"ts-jest": "^29.4.0",
|
|
23
23
|
"ts-node": "^10.9.2",
|
|
24
|
+
"tsc-alias": "^1.8.16",
|
|
24
25
|
"tsconfig-paths": "^4.2.0",
|
|
25
26
|
"tsx": "^4.20.3",
|
|
26
27
|
"typescript": "^5.8.3"
|
|
@@ -28,7 +29,8 @@
|
|
|
28
29
|
"files": [
|
|
29
30
|
"build/",
|
|
30
31
|
"*.md",
|
|
31
|
-
"*.json"
|
|
32
|
+
"*.json",
|
|
33
|
+
"!tsconfig.json"
|
|
32
34
|
],
|
|
33
35
|
"homepage": "https://github.com/arcaelas/dynamite",
|
|
34
36
|
"license": "ISC",
|
|
@@ -43,11 +45,11 @@
|
|
|
43
45
|
"url": "https://github.com/arcaelas/dynamite.git"
|
|
44
46
|
},
|
|
45
47
|
"scripts": {
|
|
46
|
-
"build": "tsc && node esbuild.js",
|
|
48
|
+
"build": "tsc && tsc-alias && node esbuild.js",
|
|
47
49
|
"commit": "npm publish --access=public",
|
|
48
50
|
"postpublish": "rm -rf build",
|
|
49
51
|
"prepublishOnly": "yarn test && npm version patch",
|
|
50
|
-
"test": "yarn build
|
|
52
|
+
"test": "jest && yarn build"
|
|
51
53
|
},
|
|
52
|
-
"version": "1.0.
|
|
54
|
+
"version": "1.0.3"
|
|
53
55
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/* __tests__/crud.spec.ts
|
|
3
|
-
* -----------------------------------------------------------
|
|
4
|
-
* CRUD end-to-end contra DynamoDB Local (puerto 7007)
|
|
5
|
-
*/
|
|
6
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
-
if (k2 === undefined) k2 = k;
|
|
8
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
-
}
|
|
12
|
-
Object.defineProperty(o, k2, desc);
|
|
13
|
-
}) : (function(o, m, k, k2) {
|
|
14
|
-
if (k2 === undefined) k2 = k;
|
|
15
|
-
o[k2] = m[k];
|
|
16
|
-
}));
|
|
17
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
-
}) : function(o, v) {
|
|
20
|
-
o["default"] = v;
|
|
21
|
-
});
|
|
22
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
23
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
24
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
25
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
26
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
27
|
-
};
|
|
28
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
29
|
-
var ownKeys = function(o) {
|
|
30
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
31
|
-
var ar = [];
|
|
32
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
33
|
-
return ar;
|
|
34
|
-
};
|
|
35
|
-
return ownKeys(o);
|
|
36
|
-
};
|
|
37
|
-
return function (mod) {
|
|
38
|
-
if (mod && mod.__esModule) return mod;
|
|
39
|
-
var result = {};
|
|
40
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
41
|
-
__setModuleDefault(result, mod);
|
|
42
|
-
return result;
|
|
43
|
-
};
|
|
44
|
-
})();
|
|
45
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
46
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
47
|
-
};
|
|
48
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
49
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
50
|
-
};
|
|
51
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
52
|
-
const client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
|
|
53
|
-
const table_1 = __importStar(require("../src/core/table"));
|
|
54
|
-
const wrapper_1 = __importDefault(require("../src/core/wrapper"));
|
|
55
|
-
const default_1 = __importDefault(require("../src/decorators/default"));
|
|
56
|
-
const name_1 = __importDefault(require("../src/decorators/name"));
|
|
57
|
-
const not_null_1 = __importDefault(require("../src/decorators/not_null"));
|
|
58
|
-
const primary_key_1 = __importDefault(require("../src/decorators/primary_key"));
|
|
59
|
-
const ddbCfg = {
|
|
60
|
-
region: "local",
|
|
61
|
-
endpoint: "http://localhost:7007",
|
|
62
|
-
credentials: { accessKeyId: "x", secretAccessKey: "x" },
|
|
63
|
-
};
|
|
64
|
-
beforeAll(() => (0, table_1.connect)(ddbCfg));
|
|
65
|
-
afterEach(async () => {
|
|
66
|
-
/* Eliminar todas las tablas creadas por los tests */
|
|
67
|
-
const ddb = new client_dynamodb_1.DynamoDBClient(ddbCfg);
|
|
68
|
-
for (const e of wrapper_1.default.values()) {
|
|
69
|
-
try {
|
|
70
|
-
await ddb.send(new client_dynamodb_1.DeleteTableCommand({ TableName: e.name }));
|
|
71
|
-
}
|
|
72
|
-
catch (_) {
|
|
73
|
-
/* tabla puede no existir */
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
wrapper_1.default.clear();
|
|
77
|
-
});
|
|
78
|
-
describe("CRUD Dinamite ORM (DynamoDB Local)", () => {
|
|
79
|
-
jest.setTimeout(10_000);
|
|
80
|
-
it("create → update → where → destroy", async () => {
|
|
81
|
-
let User = class User extends table_1.default {
|
|
82
|
-
};
|
|
83
|
-
__decorate([
|
|
84
|
-
(0, primary_key_1.default)(),
|
|
85
|
-
__metadata("design:type", String)
|
|
86
|
-
], User.prototype, "id", void 0);
|
|
87
|
-
__decorate([
|
|
88
|
-
(0, not_null_1.default)(),
|
|
89
|
-
__metadata("design:type", String)
|
|
90
|
-
], User.prototype, "email", void 0);
|
|
91
|
-
__decorate([
|
|
92
|
-
(0, default_1.default)(() => new Date().toISOString()),
|
|
93
|
-
__metadata("design:type", String)
|
|
94
|
-
], User.prototype, "created_at", void 0);
|
|
95
|
-
User = __decorate([
|
|
96
|
-
(0, name_1.default)("crud_users1")
|
|
97
|
-
], User);
|
|
98
|
-
/* ---------- create (auto-crea tabla) ---------- */
|
|
99
|
-
const u1 = await User.create({ id: "u1", email: "a@b.com" });
|
|
100
|
-
expect(u1.email).toBe("a@b.com");
|
|
101
|
-
/* ---------- update ---------- */
|
|
102
|
-
await User.update("u1", { email: "c@d.com" });
|
|
103
|
-
const [after] = await User.where();
|
|
104
|
-
expect(after.email).toBe("c@d.com");
|
|
105
|
-
/* ---------- destroy ---------- */
|
|
106
|
-
await User.destroy("u1");
|
|
107
|
-
expect(await User.where()).toHaveLength(0);
|
|
108
|
-
});
|
|
109
|
-
it("where() devuelve [] si la tabla no existe", async () => {
|
|
110
|
-
let Ghost = class Ghost extends table_1.default {
|
|
111
|
-
};
|
|
112
|
-
__decorate([
|
|
113
|
-
(0, primary_key_1.default)(),
|
|
114
|
-
__metadata("design:type", String)
|
|
115
|
-
], Ghost.prototype, "id", void 0);
|
|
116
|
-
Ghost = __decorate([
|
|
117
|
-
(0, name_1.default)("ghosts")
|
|
118
|
-
], Ghost);
|
|
119
|
-
const rows = await Ghost.where();
|
|
120
|
-
expect(rows).toEqual([]);
|
|
121
|
-
});
|
|
122
|
-
});
|
|
123
|
-
//# sourceMappingURL=crud.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"crud.spec.js","sourceRoot":"","sources":["../../__tests__/crud.spec.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,8DAA8E;AAE9E,2DAA8D;AAC9D,kEAA0C;AAE1C,wEAAgD;AAChD,kEAA0C;AAC1C,0EAAiD;AACjD,gFAAuD;AAEvD,MAAM,MAAM,GAAG;IACb,MAAM,EAAE,OAAO;IACf,QAAQ,EAAE,uBAAuB;IACjC,WAAW,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE;CACxD,CAAC;AAEF,SAAS,CAAC,GAAG,EAAE,CAAC,IAAA,eAAO,EAAC,MAAM,CAAC,CAAC,CAAC;AAEjC,SAAS,CAAC,KAAK,IAAI,EAAE;IACnB,qDAAqD;IACrD,MAAM,GAAG,GAAG,IAAI,gCAAc,CAAC,MAAM,CAAC,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,iBAAO,CAAC,MAAM,EAAE,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,oCAAkB,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,4BAA4B;QAC9B,CAAC;IACH,CAAC;IACD,iBAAO,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAClD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAExB,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QAEjD,IAAM,IAAI,GAAV,MAAM,IAAK,SAAQ,eAAK;SASvB,CAAA;QAPS;YADP,IAAA,qBAAU,GAAE;;wCACM;QAGX;YADP,IAAA,kBAAO,GAAE;;2CACY;QAGd;YADP,IAAA,iBAAO,EAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;;gDACb;QARvB,IAAI;YADT,IAAA,cAAI,EAAC,aAAa,CAAC;WACd,IAAI,CAST;QAED,oDAAoD;QACpD,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAC7D,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEjC,kCAAkC;QAClC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAC9C,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEpC,mCAAmC;QACnC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACzB,MAAM,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QAEzD,IAAM,KAAK,GAAX,MAAM,KAAM,SAAQ,eAAK;SAGxB,CAAA;QADS;YADP,IAAA,qBAAU,GAAE;;yCACM;QAFf,KAAK;YADV,IAAA,cAAI,EAAC,QAAQ,CAAC;WACT,KAAK,CAGV;QAED,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,183 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/* __tests__/decorators.spec.ts
|
|
3
|
-
* -----------------------------------------------------------
|
|
4
|
-
* Suite para verificar todos los decoradores Dinamite ORM.
|
|
5
|
-
*/
|
|
6
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
-
if (k2 === undefined) k2 = k;
|
|
8
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
-
}
|
|
12
|
-
Object.defineProperty(o, k2, desc);
|
|
13
|
-
}) : (function(o, m, k, k2) {
|
|
14
|
-
if (k2 === undefined) k2 = k;
|
|
15
|
-
o[k2] = m[k];
|
|
16
|
-
}));
|
|
17
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
-
}) : function(o, v) {
|
|
20
|
-
o["default"] = v;
|
|
21
|
-
});
|
|
22
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
23
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
24
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
25
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
26
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
27
|
-
};
|
|
28
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
29
|
-
var ownKeys = function(o) {
|
|
30
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
31
|
-
var ar = [];
|
|
32
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
33
|
-
return ar;
|
|
34
|
-
};
|
|
35
|
-
return ownKeys(o);
|
|
36
|
-
};
|
|
37
|
-
return function (mod) {
|
|
38
|
-
if (mod && mod.__esModule) return mod;
|
|
39
|
-
var result = {};
|
|
40
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
41
|
-
__setModuleDefault(result, mod);
|
|
42
|
-
return result;
|
|
43
|
-
};
|
|
44
|
-
})();
|
|
45
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
46
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
47
|
-
};
|
|
48
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
49
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
50
|
-
};
|
|
51
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
52
|
-
const wrapper_1 = __importStar(require("../src/core/wrapper"));
|
|
53
|
-
const created_at_1 = __importDefault(require("../src/decorators/created_at"));
|
|
54
|
-
const default_1 = __importDefault(require("../src/decorators/default"));
|
|
55
|
-
const index_1 = __importDefault(require("../src/decorators/index"));
|
|
56
|
-
const index_sort_1 = __importDefault(require("../src/decorators/index_sort"));
|
|
57
|
-
const mutate_1 = __importDefault(require("../src/decorators/mutate"));
|
|
58
|
-
const name_1 = __importDefault(require("../src/decorators/name"));
|
|
59
|
-
const not_null_1 = __importDefault(require("../src/decorators/not_null"));
|
|
60
|
-
const primary_key_1 = __importDefault(require("../src/decorators/primary_key"));
|
|
61
|
-
const updated_at_1 = __importDefault(require("../src/decorators/updated_at"));
|
|
62
|
-
const validate_1 = __importDefault(require("../src/decorators/validate"));
|
|
63
|
-
describe("Decoradores Dinamite ORM", () => {
|
|
64
|
-
beforeEach(() => wrapper_1.default.clear());
|
|
65
|
-
/* ---------------------------------------------------------- */
|
|
66
|
-
it("nombre de tabla por defecto (snake_plural) cuando no se usa @Name", () => {
|
|
67
|
-
class Book {
|
|
68
|
-
}
|
|
69
|
-
__decorate([
|
|
70
|
-
(0, not_null_1.default)(),
|
|
71
|
-
__metadata("design:type", String)
|
|
72
|
-
], Book.prototype, "title", void 0);
|
|
73
|
-
const meta = wrapper_1.default.get(Book);
|
|
74
|
-
expect(meta.name).toBe("books"); // Book → books
|
|
75
|
-
});
|
|
76
|
-
/* ---------------------------------------------------------- */
|
|
77
|
-
it("@Name (clase y propiedad)", () => {
|
|
78
|
-
let User = class User {
|
|
79
|
-
};
|
|
80
|
-
__decorate([
|
|
81
|
-
(0, name_1.default)("correo"),
|
|
82
|
-
__metadata("design:type", String)
|
|
83
|
-
], User.prototype, "email", void 0);
|
|
84
|
-
User = __decorate([
|
|
85
|
-
(0, name_1.default)("usuarios")
|
|
86
|
-
], User);
|
|
87
|
-
const meta = wrapper_1.default.get(User);
|
|
88
|
-
expect(meta.name).toBe("usuarios");
|
|
89
|
-
expect(meta.columns.get("email").name).toBe("correo");
|
|
90
|
-
});
|
|
91
|
-
/* ---------------------------------------------------------- */
|
|
92
|
-
it("@Index + @IndexSort (PK + SK)", () => {
|
|
93
|
-
class Post {
|
|
94
|
-
}
|
|
95
|
-
__decorate([
|
|
96
|
-
(0, index_1.default)() // Partition Key
|
|
97
|
-
,
|
|
98
|
-
__metadata("design:type", String)
|
|
99
|
-
], Post.prototype, "slug", void 0);
|
|
100
|
-
__decorate([
|
|
101
|
-
(0, index_sort_1.default)() // Sort Key
|
|
102
|
-
,
|
|
103
|
-
__metadata("design:type", String)
|
|
104
|
-
], Post.prototype, "created", void 0);
|
|
105
|
-
const meta = wrapper_1.default.get(Post);
|
|
106
|
-
const pkCol = meta.columns.get("slug");
|
|
107
|
-
const skCol = meta.columns.get("created");
|
|
108
|
-
expect(pkCol.index).toBe(true);
|
|
109
|
-
expect(skCol.indexSort).toBe(true);
|
|
110
|
-
});
|
|
111
|
-
/* ---------------------------------------------------------- */
|
|
112
|
-
it("@PrimaryKey (combinado)", () => {
|
|
113
|
-
class Comment {
|
|
114
|
-
}
|
|
115
|
-
__decorate([
|
|
116
|
-
(0, primary_key_1.default)(),
|
|
117
|
-
__metadata("design:type", String)
|
|
118
|
-
], Comment.prototype, "id", void 0);
|
|
119
|
-
const meta = wrapper_1.default.get(Comment);
|
|
120
|
-
const col = meta.columns.get("id");
|
|
121
|
-
expect(col.index).toBe(true);
|
|
122
|
-
expect(col.indexSort).toBe(true);
|
|
123
|
-
});
|
|
124
|
-
/* ---------------------------------------------------------- */
|
|
125
|
-
it("@Default + @Mutate + @Validate pipeline", () => {
|
|
126
|
-
let Model = class Model {
|
|
127
|
-
};
|
|
128
|
-
__decorate([
|
|
129
|
-
(0, default_1.default)(() => 10),
|
|
130
|
-
(0, mutate_1.default)((v) => v * 2),
|
|
131
|
-
(0, validate_1.default)((v) => (v >= 20 ? true : "menor a 20")),
|
|
132
|
-
__metadata("design:type", Number)
|
|
133
|
-
], Model.prototype, "score", void 0);
|
|
134
|
-
Model = __decorate([
|
|
135
|
-
(0, name_1.default)("tests")
|
|
136
|
-
], Model);
|
|
137
|
-
const m = new Model();
|
|
138
|
-
m.score = undefined; // dispara pipeline
|
|
139
|
-
expect(m.score).toBe(20);
|
|
140
|
-
expect(m[wrapper_1.STORE].score).toBe(20);
|
|
141
|
-
expect(() => {
|
|
142
|
-
m.score = 5;
|
|
143
|
-
}).toThrow("menor a 20");
|
|
144
|
-
});
|
|
145
|
-
/* ---------------------------------------------------------- */
|
|
146
|
-
it("@NotNull rechaza null/undefined/cadena vacía", () => {
|
|
147
|
-
class File {
|
|
148
|
-
}
|
|
149
|
-
__decorate([
|
|
150
|
-
(0, not_null_1.default)(),
|
|
151
|
-
__metadata("design:type", String)
|
|
152
|
-
], File.prototype, "path", void 0);
|
|
153
|
-
const f = new File();
|
|
154
|
-
expect(() => (f.path = null)).toThrow();
|
|
155
|
-
expect(() => (f.path = " ")).toThrow();
|
|
156
|
-
f.path = "/tmp/file";
|
|
157
|
-
expect(f.path).toBe("/tmp/file");
|
|
158
|
-
});
|
|
159
|
-
/* ---------------------------------------------------------- */
|
|
160
|
-
it("@CreatedAt y @UpdatedAt gestionan timestamps", () => {
|
|
161
|
-
class Audit {
|
|
162
|
-
}
|
|
163
|
-
__decorate([
|
|
164
|
-
(0, created_at_1.default)(),
|
|
165
|
-
__metadata("design:type", String)
|
|
166
|
-
], Audit.prototype, "created", void 0);
|
|
167
|
-
__decorate([
|
|
168
|
-
(0, updated_at_1.default)(),
|
|
169
|
-
__metadata("design:type", String)
|
|
170
|
-
], Audit.prototype, "updated", void 0);
|
|
171
|
-
const a = new Audit();
|
|
172
|
-
a.created = undefined;
|
|
173
|
-
a.updated = undefined;
|
|
174
|
-
const firstCreated = a.created;
|
|
175
|
-
const firstUpdated = a.updated;
|
|
176
|
-
return new Promise((r) => setTimeout(r, 10)).then(() => {
|
|
177
|
-
a.updated = undefined;
|
|
178
|
-
expect(a.created).toBe(firstCreated);
|
|
179
|
-
expect(a.updated).not.toBe(firstUpdated);
|
|
180
|
-
});
|
|
181
|
-
});
|
|
182
|
-
});
|
|
183
|
-
//# sourceMappingURL=decorators.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.spec.js","sourceRoot":"","sources":["../../__tests__/decorators.spec.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,+DAAqD;AAErD,8EAAqD;AACrD,wEAAgD;AAChD,oEAA4C;AAC5C,8EAAqD;AACrD,sEAA8C;AAC9C,kEAA0C;AAC1C,0EAAiD;AACjD,gFAAuD;AACvD,8EAAqD;AACrD,0EAAkD;AAElD,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,UAAU,CAAC,GAAG,EAAE,CAAC,iBAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAElC,gEAAgE;IAChE,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,MAAM,IAAI;SAGT;QADS;YADP,IAAA,kBAAO,GAAE;;2CACY;QAExB,MAAM,IAAI,GAAG,iBAAO,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;IAClD,CAAC,CAAC,CAAC;IAEH,gEAAgE;IAChE,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QAEnC,IAAM,IAAI,GAAV,MAAM,IAAI;SAGT,CAAA;QADS;YADP,IAAA,cAAI,EAAC,QAAQ,CAAC;;2CACO;QAFlB,IAAI;YADT,IAAA,cAAI,EAAC,UAAU,CAAC;WACX,IAAI,CAGT;QAED,MAAM,IAAI,GAAG,iBAAO,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,gEAAgE;IAChE,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,IAAI;SAMT;QAJS;YADP,IAAA,eAAK,GAAE,CAAC,gBAAgB;;;0CACJ;QAGb;YADP,IAAA,oBAAS,GAAE,CAAC,WAAW;;;6CACA;QAG1B,MAAM,IAAI,GAAG,iBAAO,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;QAE3C,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,gEAAgE;IAChE,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,OAAO;SAGZ;QADS;YADP,IAAA,qBAAU,GAAE;;2CACM;QAGrB,MAAM,IAAI,GAAG,iBAAO,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;QAEpC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,gEAAgE;IAChE,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QAEjD,IAAM,KAAK,GAAX,MAAM,KAAK;SAKV,CAAA;QADS;YAHP,IAAA,iBAAO,EAAC,GAAG,EAAE,CAAC,EAAE,CAAC;YACjB,IAAA,gBAAM,EAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAY,GAAG,CAAC,CAAC;YAChC,IAAA,kBAAQ,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAE,CAAY,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;;4CACvC;QAJlB,KAAK;YADV,IAAA,cAAI,EAAC,OAAO,CAAC;WACR,KAAK,CAKV;QAED,MAAM,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC;QACrB,CAAS,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,mBAAmB;QACjD,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzB,MAAM,CAAE,CAAS,CAAC,eAAK,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEzC,MAAM,CAAC,GAAG,EAAE;YACV,CAAC,CAAC,KAAK,GAAG,CAAQ,CAAC;QACrB,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,gEAAgE;IAChE,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,IAAI;SAGT;QADS;YADP,IAAA,kBAAO,GAAE;;0CACW;QAGvB,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,EAAE,CAAC,CAAE,CAAS,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACjD,MAAM,CAAC,GAAG,EAAE,CAAC,CAAE,CAAS,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAChD,CAAC,CAAC,IAAI,GAAG,WAAW,CAAC;QACrB,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,gEAAgE;IAChE,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,KAAK;SAMV;QAJS;YADP,IAAA,oBAAS,GAAE;;8CACY;QAGhB;YADP,IAAA,oBAAS,GAAE;;8CACY;QAG1B,MAAM,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC;QACrB,CAAS,CAAC,OAAO,GAAG,SAAS,CAAC;QAC9B,CAAS,CAAC,OAAO,GAAG,SAAS,CAAC;QAE/B,MAAM,YAAY,GAAG,CAAC,CAAC,OAAO,CAAC;QAC/B,MAAM,YAAY,GAAG,CAAC,CAAC,OAAO,CAAC;QAE/B,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;YACpD,CAAS,CAAC,OAAO,GAAG,SAAS,CAAC;YAC/B,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACrC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|