@antelopejs/interface-data-api 0.6.2 → 0.6.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.
@@ -12,7 +12,7 @@ function FilterValuesOf(filter) {
12
12
  return isFilterList(filter) ? filter : [filter];
13
13
  }
14
14
  function parseFilter(searchVal) {
15
- const match = searchVal.match(/([^:]+):(.*)/);
15
+ const match = searchVal.match(/^:*([^:]+):(.*)/);
16
16
  return match ? [match[2], match[1]] : [searchVal, "eq"];
17
17
  }
18
18
  function copyFilter(filter) {
@@ -1 +1 @@
1
- {"version":3,"file":"filters.js","sourceRoot":"","sources":["../../src/internal/filters.ts"],"names":[],"mappings":";AAAA,sCAAsC;;AAStC,wCAEC;AAED,kCAGC;AAED,gCAGC;AAjBD,SAAS,YAAY,CAAC,MAAmB;IACvC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,2EAA2E;AAC3E,SAAgB,cAAc,CAAC,MAAmB;IAChD,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,SAAgB,WAAW,CAAC,SAAiB;IAC3C,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC9C,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAC1D,CAAC;AAED,SAAgB,UAAU,CAAC,MAAmB;IAC5C,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAe,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAC9E,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"filters.js","sourceRoot":"","sources":["../../src/internal/filters.ts"],"names":[],"mappings":";AAAA,sCAAsC;;AAStC,wCAEC;AAED,kCAGC;AAED,gCAGC;AAjBD,SAAS,YAAY,CAAC,MAAmB;IACvC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,2EAA2E;AAC3E,SAAgB,cAAc,CAAC,MAAmB;IAChD,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,SAAgB,WAAW,CAAC,SAAiB;IAC3C,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACjD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAC1D,CAAC;AAED,SAAgB,UAAU,CAAC,MAAmB;IAC5C,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAe,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAC9E,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAClD,CAAC"}
@@ -30,5 +30,15 @@ describe("Parameters.ExtractFilters - comparisons", () => {
30
30
  it("hands an unnamed value that contains a colon to a custom filter", () => {
31
31
  (0, chai_1.expect)(components_1.Parameters.ExtractFilters(context("filter_title=http://example.com"), meta)).to.eql({ title: ["//example.com", "http"] });
32
32
  });
33
+ it("reads the comparison after the colons a value opens with", () => {
34
+ (0, chai_1.expect)(components_1.Parameters.ExtractFilters(context("filter_title=::is:abc"), meta)).to.eql({ title: ["abc", "is"] });
35
+ });
36
+ it("reads a long value without a colon in linear time", () => {
37
+ const value = "a".repeat(64_000);
38
+ const start = performance.now();
39
+ const filters = components_1.Parameters.ExtractFilters(context(`filter_title=${value}`), meta);
40
+ (0, chai_1.expect)(performance.now() - start).to.be.below(250);
41
+ (0, chai_1.expect)(filters).to.eql({ title: [value, "eq"] });
42
+ });
33
43
  });
34
44
  //# sourceMappingURL=filter_comparisons.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"filter_comparisons.test.js","sourceRoot":"","sources":["../../../src/tests/components/filter_comparisons.test.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAE9B,iDAA8C;AAC9C,6CAA6C;AAE7C,2CAAwD;AAExD,MAAM,IAAI,GAAG,IAAI,sBAAW,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AAEpE,SAAS,OAAO,CAAC,KAAa;IAC5B,OAAO,MAAM,CAAC,MAAM,CAAC,IAAA,2BAAoB,EAAC,qBAAqB,KAAK,EAAE,CAAC,EAAE;QACvE,YAAY,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;KACrC,CAAC,CAAC;AACL,CAAC;AAED,QAAQ,CAAC,yCAAyC,EAAE,GAAG,EAAE;IACvD,KAAK,MAAM,UAAU,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QAC9D,EAAE,CAAC,aAAa,UAAU,aAAa,EAAE,GAAG,EAAE;YAC5C,IAAA,aAAM,EACJ,uBAAU,CAAC,cAAc,CACvB,OAAO,CAAC,gBAAgB,UAAU,MAAM,CAAC,EACzC,IAAI,CACL,CACF,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,IAAA,aAAM,EAAC,uBAAU,CAAC,cAAc,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CACzE,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CACzB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,IAAA,aAAM,EACJ,uBAAU,CAAC,cAAc,CACvB,OAAO,CAAC,oCAAoC,CAAC,EAC7C,IAAI,CACL,CACF,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,oBAAoB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,KAAK,MAAM,UAAU,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;YAC3D,IAAA,aAAM,EACJ,uBAAU,CAAC,cAAc,CACvB,OAAO,CAAC,gBAAgB,UAAU,MAAM,CAAC,EACzC,IAAI,CACL,EACD,UAAU,CACX,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,IAAA,aAAM,EACJ,uBAAU,CAAC,cAAc,CACvB,OAAO,CAAC,iCAAiC,CAAC,EAC1C,IAAI,CACL,CACF,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,eAAe,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"filter_comparisons.test.js","sourceRoot":"","sources":["../../../src/tests/components/filter_comparisons.test.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAE9B,iDAA8C;AAC9C,6CAA6C;AAE7C,2CAAwD;AAExD,MAAM,IAAI,GAAG,IAAI,sBAAW,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AAEpE,SAAS,OAAO,CAAC,KAAa;IAC5B,OAAO,MAAM,CAAC,MAAM,CAAC,IAAA,2BAAoB,EAAC,qBAAqB,KAAK,EAAE,CAAC,EAAE;QACvE,YAAY,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;KACrC,CAAC,CAAC;AACL,CAAC;AAED,QAAQ,CAAC,yCAAyC,EAAE,GAAG,EAAE;IACvD,KAAK,MAAM,UAAU,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QAC9D,EAAE,CAAC,aAAa,UAAU,aAAa,EAAE,GAAG,EAAE;YAC5C,IAAA,aAAM,EACJ,uBAAU,CAAC,cAAc,CACvB,OAAO,CAAC,gBAAgB,UAAU,MAAM,CAAC,EACzC,IAAI,CACL,CACF,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,IAAA,aAAM,EAAC,uBAAU,CAAC,cAAc,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CACzE,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CACzB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,IAAA,aAAM,EACJ,uBAAU,CAAC,cAAc,CACvB,OAAO,CAAC,oCAAoC,CAAC,EAC7C,IAAI,CACL,CACF,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,oBAAoB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,KAAK,MAAM,UAAU,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;YAC3D,IAAA,aAAM,EACJ,uBAAU,CAAC,cAAc,CACvB,OAAO,CAAC,gBAAgB,UAAU,MAAM,CAAC,EACzC,IAAI,CACL,EACD,UAAU,CACX,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,IAAA,aAAM,EACJ,uBAAU,CAAC,cAAc,CACvB,OAAO,CAAC,iCAAiC,CAAC,EAC1C,IAAI,CACL,CACF,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,eAAe,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,IAAA,aAAM,EACJ,uBAAU,CAAC,cAAc,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,IAAI,CAAC,CAClE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,uBAAU,CAAC,cAAc,CACvC,OAAO,CAAC,gBAAgB,KAAK,EAAE,CAAC,EAChC,IAAI,CACL,CAAC;QACF,IAAA,aAAM,EAAC,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnD,IAAA,aAAM,EAAC,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@antelopejs/interface-data-api",
3
- "version": "0.6.2",
3
+ "version": "0.6.3",
4
4
  "description": "AntelopeJS interface that generates CRUD REST endpoints from database tables, with access rules, validation and pagination",
5
5
  "keywords": [
6
6
  "antelopejs",
@@ -57,7 +57,7 @@
57
57
  "lint:fix": "oxlint --fix",
58
58
  "lint": "oxlint",
59
59
  "prepack": "pnpm run build",
60
- "release": "pnpm run lint && pnpm run prepack && release-it",
60
+ "release": "pnpm run typecheck && pnpm run lint && pnpm run prepack && release-it",
61
61
  "test": "pnpm run build && ajs module test .",
62
62
  "format:check": "oxfmt --check .",
63
63
  "knip": "knip",
@@ -78,7 +78,7 @@
78
78
  "@antelopejs/interface-core": "^0.4.0",
79
79
  "@antelopejs/interface-database": "^0.3.0",
80
80
  "@antelopejs/interface-database-decorators": "^0.2.0",
81
- "@antelopejs/tooling-configs": "^0.4.0",
81
+ "@antelopejs/tooling-configs": "^0.5.1",
82
82
  "@types/chai": "^4.3.20",
83
83
  "@types/mocha": "^10.0.10",
84
84
  "@types/node": "^22.19.15",