on-zero 0.4.4 → 0.4.6
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/dist/cjs/generate-helpers.cjs +1 -1
- package/dist/cjs/generate-helpers.native.js +1 -1
- package/dist/cjs/index.cjs +3 -0
- package/dist/cjs/index.native.js +3 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/queryRegistry.cjs +12 -1
- package/dist/cjs/queryRegistry.native.js +12 -1
- package/dist/cjs/queryRegistry.native.js.map +1 -1
- package/dist/cjs/usePermission.test.cjs +14 -0
- package/dist/cjs/usePermission.test.native.js +14 -0
- package/dist/cjs/usePermission.test.native.js.map +1 -1
- package/dist/esm/generate-helpers.mjs +1 -1
- package/dist/esm/generate-helpers.native.js +1 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +2 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +2 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/queryRegistry.mjs +12 -1
- package/dist/esm/queryRegistry.mjs.map +1 -1
- package/dist/esm/queryRegistry.native.js +12 -1
- package/dist/esm/queryRegistry.native.js.map +1 -1
- package/dist/esm/usePermission.test.mjs +14 -0
- package/dist/esm/usePermission.test.mjs.map +1 -1
- package/dist/esm/usePermission.test.native.js +14 -0
- package/dist/esm/usePermission.test.native.js.map +1 -1
- package/package.json +3 -3
- package/src/generate-helpers.ts +1 -1
- package/src/index.ts +1 -0
- package/src/queryRegistry.ts +15 -1
- package/src/usePermission.test.ts +20 -0
- package/types/index.d.ts +1 -0
- package/types/index.d.ts.map +1 -1
- package/types/queryRegistry.d.ts.map +1 -1
|
@@ -203,7 +203,7 @@ function generateSyncedQueriesFile(queries) {
|
|
|
203
203
|
const sortedFiles = Array.from(queryByFile.keys()).sort();
|
|
204
204
|
const imports = `// auto-generated by: on-zero generate
|
|
205
205
|
// server-side query definitions with validators
|
|
206
|
-
import { defineQuery, defineQueries } from '
|
|
206
|
+
import { defineQuery, defineQueries } from 'on-zero'
|
|
207
207
|
import * as v from 'valibot'
|
|
208
208
|
import * as Queries from './groupedQueries'
|
|
209
209
|
`;
|
|
@@ -255,7 +255,7 @@ function generateSyncedQueriesFile(queries) {
|
|
|
255
255
|
var sortedFiles = Array.from(queryByFile.keys()).sort();
|
|
256
256
|
var imports = `// auto-generated by: on-zero generate
|
|
257
257
|
// server-side query definitions with validators
|
|
258
|
-
import { defineQuery, defineQueries } from '
|
|
258
|
+
import { defineQuery, defineQueries } from 'on-zero'
|
|
259
259
|
import * as v from 'valibot'
|
|
260
260
|
import * as Queries from './groupedQueries'
|
|
261
261
|
`;
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -24,6 +24,8 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
|
24
24
|
var index_exports = {};
|
|
25
25
|
__export(index_exports, {
|
|
26
26
|
clearZeroClientData: () => import_clearZeroClientData.clearZeroClientData,
|
|
27
|
+
defineQueries: () => import_zero.defineQueries,
|
|
28
|
+
defineQuery: () => import_zero.defineQuery,
|
|
27
29
|
ensureAuth: () => import_getAuth.ensureAuth,
|
|
28
30
|
getAuth: () => import_getAuth.getAuth,
|
|
29
31
|
resetShownZeroClientError: () => import_showZeroClientError.resetShownZeroClientError,
|
|
@@ -50,5 +52,6 @@ __reExport(index_exports, require("./mutations.cjs"), module.exports);
|
|
|
50
52
|
__reExport(index_exports, require("./where.cjs"), module.exports);
|
|
51
53
|
__reExport(index_exports, require("./serverWhere.cjs"), module.exports);
|
|
52
54
|
__reExport(index_exports, require("./zql.cjs"), module.exports);
|
|
55
|
+
var import_zero = require("@rocicorp/zero");
|
|
53
56
|
var import_clearZeroClientData = require("./helpers/clearZeroClientData.cjs");
|
|
54
57
|
var import_showZeroClientError = require("./helpers/showZeroClientError.cjs");
|
package/dist/cjs/index.native.js
CHANGED
|
@@ -26,6 +26,8 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
|
26
26
|
var index_exports = {};
|
|
27
27
|
__export(index_exports, {
|
|
28
28
|
clearZeroClientData: () => import_clearZeroClientData.clearZeroClientData,
|
|
29
|
+
defineQueries: () => import_zero.defineQueries,
|
|
30
|
+
defineQuery: () => import_zero.defineQuery,
|
|
29
31
|
ensureAuth: () => import_getAuth.ensureAuth,
|
|
30
32
|
getAuth: () => import_getAuth.getAuth,
|
|
31
33
|
resetShownZeroClientError: () => import_showZeroClientError.resetShownZeroClientError,
|
|
@@ -52,6 +54,7 @@ __reExport(index_exports, require("./mutations.native.js"), module.exports);
|
|
|
52
54
|
__reExport(index_exports, require("./where.native.js"), module.exports);
|
|
53
55
|
__reExport(index_exports, require("./serverWhere.native.js"), module.exports);
|
|
54
56
|
__reExport(index_exports, require("./zql.native.js"), module.exports);
|
|
57
|
+
var import_zero = require("@rocicorp/zero");
|
|
55
58
|
var import_clearZeroClientData = require("./helpers/clearZeroClientData.native.js");
|
|
56
59
|
var import_showZeroClientError = require("./helpers/showZeroClientError.native.js");
|
|
57
60
|
//# sourceMappingURL=index.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","index_exports","__export","clearZeroClientData","import_clearZeroClientData","ensureAuth","import_getAuth","getAuth","resetShownZeroClientError","import_showZeroClientError","setAuthData","import_state","setEnvironment","setRunner","import_zeroRunner","showZeroClientErrorOnce","module","exports","__reExport","require"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,aAAA;AAAAC,QAAA,CAAAD,aAAA;EAAAE,mBAAA,EAAAA,CAAA,KAAAC,0BAAA,CAAAD,mBAAA;EAAAE,UAAA,EAAAA,CAAA,KAAAC,cAAA,CAAAD,UAAA;EAAAE,OAAA,EAAAA,CAAA,KAAAD,cAAA,CAAAC,OAAA;EAAAC,yBAAA,EAAAA,CAAA,KAAAC,0BAAA,CAAAD,yBAAA;EAAAE,WAAA,EAAAA,CAAA,KAAAC,YAAA,CAAAD,WAAA;EAAAE,cAAA,EAAAA,CAAA,KAAAD,YAAA,CAAAC,cAAA;EAAAC,SAAA,EAAAA,CAAA,KAAAC,iBAAA,CAAAD,SAAA;EAAAE,uBAAA,EAAAA,CAAA,KAAAN,0BAAA,CAAAM;AAAA;AAAAC,MAAA,CAAAC,OAAA,
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","index_exports","__export","clearZeroClientData","import_clearZeroClientData","defineQueries","import_zero","defineQuery","ensureAuth","import_getAuth","getAuth","resetShownZeroClientError","import_showZeroClientError","setAuthData","import_state","setEnvironment","setRunner","import_zeroRunner","showZeroClientErrorOnce","module","exports","__reExport","require"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,aAAA;AAAAC,QAAA,CAAAD,aAAA;EAAAE,mBAAA,EAAAA,CAAA,KAAAC,0BAAA,CAAAD,mBAAA;EAAAE,aAAA,EAAAA,CAAA,KAAAC,WAAA,CAAAD,aAAA;EAAAE,WAAA,EAAAA,CAAA,KAAAD,WAAA,CAAAC,WAAA;EAAAC,UAAA,EAAAA,CAAA,KAAAC,cAAA,CAAAD,UAAA;EAAAE,OAAA,EAAAA,CAAA,KAAAD,cAAA,CAAAC,OAAA;EAAAC,yBAAA,EAAAA,CAAA,KAAAC,0BAAA,CAAAD,yBAAA;EAAAE,WAAA,EAAAA,CAAA,KAAAC,YAAA,CAAAD,WAAA;EAAAE,cAAA,EAAAA,CAAA,KAAAD,YAAA,CAAAC,cAAA;EAAAC,SAAA,EAAAA,CAAA,KAAAC,iBAAA,CAAAD,SAAA;EAAAE,uBAAA,EAAAA,CAAA,KAAAN,0BAAA,CAAAM;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAxB,YAAc,CAAAK,aAAA;AACdoB,UAAA,CAAApB,aAAA,EAAcqB,OAAA,gCADd,GAAAH,MAAA,CAAAC,OAAA;AAEAC,UAAA,CAAApB,aAAA,EAAcqB,OAAA,+BAAAH,MAFd,CAAAC,OAAA;AAGAC,UAAA,CAAApB,aAAA,EAAcqB,OAAA,oCAAAH,MAHd,CAAAC,OAAA;AAIAC,UAAA,CAAApB,aAAA,EAAcqB,OAAA,wCAJdH,MAAA,CAAAC,OAAA;AAKAC,UAAA,CAAApB,aAAA,EAAcqB,OAAA,wCALdH,MAAA,CAAAC,OAAA;AAMAC,UAAA,CAAApB,aAAoC,EAAAqB,OAAA,wCAAAH,MAAA,CAAAC,OAAA;AACpC,IAAAX,cAAA,GAA4Ca,OAAA;AAE5C,IAAAR,YAAA,GAAAQ,OAAc;AACdD,UAAA,CAAApB,aAAA,EAAcqB,OAAA,gCAVd,EAAAH,MAAA,CAAAC,OAAA;AAWAC,UAAA,CAAApB,aAAA,EAAcqB,OAAA,8BAXd,EAAAH,MAAA,CAAAC,OAAA;AAYAC,UAAA,CAAApB,aAAA,EAAcqB,OAAA,2BAZd,GAAAH,MAAA,CAAAC,OAAA;AAaAC,UAAA,CAAApB,aAA2C,EAAAqB,OAAA,qBAAAH,MAAA,CAAAC,OAAA;AAC3C,IAAAH,iBAAA,GAAAK,OAAc;AACdD,UAAA,CAAApB,aAAA,EAAcqB,OAAA,wBAfd,GAAAH,MAAA,CAAAC,OAAA;AAgBAC,UAAA,CAAApB,aAAA,EAAcqB,OAAA,uBAAAH,MAhBd,CAAAC,OAAA;AAiBAC,UAAA,CAAApB,aAAA,EAAcqB,OAAA,0BAjBd,GAAAH,MAAA,CAAAC,OAAA;AAkBAC,UAAA,CAAApB,aAA2C,EAAAqB,OAAA,qBAAAH,MAAA,CAAAC,OAAA;AAQ3C,IAAAd,WAAA,GAAAgB,OAAA,iBAGO;AACP,IAAAlB,0BAAA,GAKOkB,OAAA","ignoreList":[]}
|
|
@@ -27,10 +27,21 @@ __export(queryRegistry_exports, {
|
|
|
27
27
|
});
|
|
28
28
|
module.exports = __toCommonJS(queryRegistry_exports);
|
|
29
29
|
const QUERY_NAME_KEY = "__onZeroQueryName";
|
|
30
|
+
const queryNamesByFunctionName = /* @__PURE__ */new Map();
|
|
30
31
|
function registerQuery(fn, name) {
|
|
31
32
|
;
|
|
32
33
|
fn[QUERY_NAME_KEY] = name;
|
|
34
|
+
if (!fn.name) return;
|
|
35
|
+
const existing = queryNamesByFunctionName.get(fn.name);
|
|
36
|
+
if (existing === void 0 || existing === name) {
|
|
37
|
+
queryNamesByFunctionName.set(fn.name, name);
|
|
38
|
+
} else {
|
|
39
|
+
queryNamesByFunctionName.set(fn.name, null);
|
|
40
|
+
}
|
|
33
41
|
}
|
|
34
42
|
function getQueryName(fn) {
|
|
35
|
-
|
|
43
|
+
const stampedName = fn?.[QUERY_NAME_KEY];
|
|
44
|
+
if (stampedName) return stampedName;
|
|
45
|
+
const namedQuery = queryNamesByFunctionName.get(fn?.name);
|
|
46
|
+
return namedQuery ?? void 0;
|
|
36
47
|
}
|
|
@@ -29,11 +29,22 @@ __export(queryRegistry_exports, {
|
|
|
29
29
|
});
|
|
30
30
|
module.exports = __toCommonJS(queryRegistry_exports);
|
|
31
31
|
var QUERY_NAME_KEY = "__onZeroQueryName";
|
|
32
|
+
var queryNamesByFunctionName = /* @__PURE__ */new Map();
|
|
32
33
|
function registerQuery(fn, name) {
|
|
33
34
|
;
|
|
34
35
|
fn[QUERY_NAME_KEY] = name;
|
|
36
|
+
if (!fn.name) return;
|
|
37
|
+
var existing = queryNamesByFunctionName.get(fn.name);
|
|
38
|
+
if (existing === void 0 || existing === name) {
|
|
39
|
+
queryNamesByFunctionName.set(fn.name, name);
|
|
40
|
+
} else {
|
|
41
|
+
queryNamesByFunctionName.set(fn.name, null);
|
|
42
|
+
}
|
|
35
43
|
}
|
|
36
44
|
function getQueryName(fn) {
|
|
37
|
-
|
|
45
|
+
var stampedName = fn === null || fn === void 0 ? void 0 : fn[QUERY_NAME_KEY];
|
|
46
|
+
if (stampedName) return stampedName;
|
|
47
|
+
var namedQuery = queryNamesByFunctionName.get(fn === null || fn === void 0 ? void 0 : fn.name);
|
|
48
|
+
return namedQuery !== null && namedQuery !== void 0 ? namedQuery : void 0;
|
|
38
49
|
}
|
|
39
50
|
//# sourceMappingURL=queryRegistry.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","queryRegistry_exports","__export","getQueryName","registerQuery","module","exports","QUERY_NAME_KEY","fn","name"],"sources":["../../src/queryRegistry.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,qBAAA;AAAAC,QAAA,CAAAD,qBAAA;EAAAE,YAAA,EAAAA,CAAA,KAAAA,YAAA;EAAAC,aAAA,EAAAA,CAAA,KAAAA;AAAA;AASAC,MAAM,CAAAC,OAAA,GAAAV,YAAiB,CAAAK,qBAAA;
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","queryRegistry_exports","__export","getQueryName","registerQuery","module","exports","QUERY_NAME_KEY","queryNamesByFunctionName","Map","fn","name","existing","get","set","stampedName","namedQuery"],"sources":["../../src/queryRegistry.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,qBAAA;AAAAC,QAAA,CAAAD,qBAAA;EAAAE,YAAA,EAAAA,CAAA,KAAAA,YAAA;EAAAC,aAAA,EAAAA,CAAA,KAAAA;AAAA;AASAC,MAAM,CAAAC,OAAA,GAAAV,YAAiB,CAAAK,qBAAA;AACvB,IAAAM,cAAM,sBAA2B;AAE1B,IAAAC,wBAAqC,kBAAc,IAAAC,GAAA;AACxD,SAAAL,cAAAM,EAAA,EAAAC,IAAA;EAAE;EAEFD,EAAA,CAAAH,cAAc,IAAAI,IAAA;EAEd,KAAAD,EAAM,CAAAC,IAAA;EACN,IAAIC,QAAA,GAAAJ,wBAA0B,CAAaK,GAAA,CAAAH,EAAM,CAAAC,IAAA;EAC/C,IAAAC,QAAA,eAAyBA,QAAO,KAAMD,IAAI;IAC5CH,wBAAO,CAAAM,GAAA,CAAAJ,EAAA,CAAAC,IAAA,EAAAA,IAAA;EACL;IACFH,wBAAA,CAAAM,GAAA,CAAAJ,EAAA,CAAAC,IAAA;EACF;AAEO;AACL,SAAMR,aAAeO,EAAA;EACrB,IAAIK,WAAA,GAAaL,EAAA,KAAO,QAAAA,EAAA,uBAAAA,EAAA,CAAAH,cAAA;EAExB,IAAAQ,WAAM,SAAaA,WAAA;EACnB,IAAAC,UAAO,GAAAR,wBAAc,CAAAK,GAAA,CAAAH,EAAA,aAAAA,EAAA,uBAAAA,EAAA,CAAAC,IAAA;EACvB,OAAAK,UAAA,aAAAA,UAAA,cAAAA,UAAA","ignoreList":[]}
|
|
@@ -77,4 +77,18 @@ var import_state = require("./state.cjs");
|
|
|
77
77
|
(0, import_queryRegistry.registerQuery)(fn, "permission.testEntity");
|
|
78
78
|
(0, import_vitest.expect)((0, import_queryRegistry.getQueryName)(fn)).toBe("permission.testEntity");
|
|
79
79
|
});
|
|
80
|
+
(0, import_vitest.test)("query lookup survives hot-reloaded function identity", () => {
|
|
81
|
+
const original = function activeProjects() {};
|
|
82
|
+
const hotReloaded = function activeProjects() {};
|
|
83
|
+
(0, import_queryRegistry.registerQuery)(original, "project.activeProjects");
|
|
84
|
+
(0, import_vitest.expect)((0, import_queryRegistry.getQueryName)(hotReloaded)).toBe("project.activeProjects");
|
|
85
|
+
});
|
|
86
|
+
(0, import_vitest.test)("query lookup does not guess when names are ambiguous", () => {
|
|
87
|
+
const first = function byId() {};
|
|
88
|
+
const second = function byId() {};
|
|
89
|
+
const hotReloaded = function byId() {};
|
|
90
|
+
(0, import_queryRegistry.registerQuery)(first, "project.byId");
|
|
91
|
+
(0, import_queryRegistry.registerQuery)(second, "user.byId");
|
|
92
|
+
(0, import_vitest.expect)((0, import_queryRegistry.getQueryName)(hotReloaded)).toBeUndefined();
|
|
93
|
+
});
|
|
80
94
|
});
|
|
@@ -81,5 +81,19 @@ var import_state = require("./state.native.js");
|
|
|
81
81
|
(0, import_queryRegistry.registerQuery)(fn, "permission.testEntity");
|
|
82
82
|
(0, import_vitest.expect)((0, import_queryRegistry.getQueryName)(fn)).toBe("permission.testEntity");
|
|
83
83
|
});
|
|
84
|
+
(0, import_vitest.test)("query lookup survives hot-reloaded function identity", function () {
|
|
85
|
+
var original = function activeProjects() {};
|
|
86
|
+
var hotReloaded = function activeProjects() {};
|
|
87
|
+
(0, import_queryRegistry.registerQuery)(original, "project.activeProjects");
|
|
88
|
+
(0, import_vitest.expect)((0, import_queryRegistry.getQueryName)(hotReloaded)).toBe("project.activeProjects");
|
|
89
|
+
});
|
|
90
|
+
(0, import_vitest.test)("query lookup does not guess when names are ambiguous", function () {
|
|
91
|
+
var first = function byId() {};
|
|
92
|
+
var second = function byId() {};
|
|
93
|
+
var hotReloaded = function byId() {};
|
|
94
|
+
(0, import_queryRegistry.registerQuery)(first, "project.byId");
|
|
95
|
+
(0, import_queryRegistry.registerQuery)(second, "user.byId");
|
|
96
|
+
(0, import_vitest.expect)((0, import_queryRegistry.getQueryName)(hotReloaded)).toBeUndefined();
|
|
97
|
+
});
|
|
84
98
|
});
|
|
85
99
|
//# sourceMappingURL=usePermission.test.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["import_zero","require","import_vitest","import_modelRegistry","import_queryRegistry","import_state","describe","test","testTable","table","columns","id","string","ownerId","active","boolean","primaryKey","setSchema","tables","testEntity","version","setEnvironment","fn","args","objOrId","result1","_uid","result2","result3","expect","toBe","args1","JSON","stringify","args2","args3"],"sources":["../../src/usePermission.test.ts"],"sourcesContent":[null],"mappings":"AAAA;;AACA,IAAAA,WAAA,GAAAC,OAAuC;AAEvC,IAAAC,aAAA,GAAAD,OAAiE;AACjE,IAAAE,oBAAA,GAA4CF,OAAA;AAC5C,IAAAG,oBAA0C,GAAAH,OAAA;AAAA,IAE1CI,YAAA,GAAAJ,OAAA,oBAAS;AAUP,IAAAC,aAAA,CAAAI,QAAK,mDAAkD;EAErD,IAAAJ,aAAM,CAAAK,IAAA,EAAY,gDACP;IAAA,IACPC,SAAI,OAAAR,WAAO,CAAAS,KAAA,gBAAAC,OAAA;MACXC,EAAA,MAAAX,WAAS,CAAAY,MAAA;MACTC,OAAA,MAAQb,WAAA,CAAAY,MAAA,EAAQ;MACjBE,MACA,MAAWd,WAAI,CAAAe,OAAA;IAElB,GAAAC,UAAA;IACA,IAAAX,YAAA,CAAAY,SAAA;MAIAC,MAAM;QAEJC,UAAS,EAAAX;MACX;MAEAY,OAAM;IACN;IACA,IAAAf,YAAgB,CAAAgB,cAAc,UAAW;IAGzC,IAAAC,EAAA,YAAAA,CAAAC,IAAA;MACA;QACAC,OAAA,EAAAD,IAAA,CAAAC;MACD;IAED;IAGE,IAAAC,OAAM,GAAQH,EAAA;MACdE,OAAM,WAAa;MACnBE,IAAM;IAEN;IACA,IAAAC,OAAA,GAAAL,EAAA;MACAE,OAAA;MACDE,IAAA;IAED;IAEE,IAAAE,OAAM,GAAQN,EAAA;MACdE,OAAM;IAEN;IACD,IAAAtB,aAAA,CAAA2B,MAAA,EAAAJ,OAAA,CAAAD,OAAA,EAAAM,IAAA;IAED,IAAA5B,aAAA,CAAA2B,MAAK,EAAAF,OAAA,CAAAH,OAAA,EAAAM,IAAA;IAEH,IAAA5B,aAAM,CAAY2B,MAAU,EAAAD,OAAc,CAAAJ,OAAO,EAAAM,IAAA,UAAiB;EAClE;EAEA,IAAA5B,aAAM,CAAAK,IAAO,2DAAoC;IACjD,IAAAwB,KAAA,GAAAC,IAAA,CAAAC,SAAO;MACPT,OAAA;MACDE,IAAA;IAED;IACE,IAAAQ,KAAM,GAAKF,IAAA,CAAMC,SAAA;MAACT,OAAA;MAClBE,IAAA;IAEA;IACD,IAAAS,KAAA,GAAAH,IAAA,CAAAC,SAAA;
|
|
1
|
+
{"version":3,"names":["import_zero","require","import_vitest","import_modelRegistry","import_queryRegistry","import_state","describe","test","testTable","table","columns","id","string","ownerId","active","boolean","primaryKey","setSchema","tables","testEntity","version","setEnvironment","fn","args","objOrId","result1","_uid","result2","result3","expect","toBe","args1","JSON","stringify","args2","args3","not","mockWhere","eb","auth"],"sources":["../../src/usePermission.test.ts"],"sourcesContent":[null],"mappings":"AAAA;;AACA,IAAAA,WAAA,GAAAC,OAAuC;AAEvC,IAAAC,aAAA,GAAAD,OAAiE;AACjE,IAAAE,oBAAA,GAA4CF,OAAA;AAC5C,IAAAG,oBAA0C,GAAAH,OAAA;AAAA,IAE1CI,YAAA,GAAAJ,OAAA,oBAAS;AAUP,IAAAC,aAAA,CAAAI,QAAK,mDAAkD;EAErD,IAAAJ,aAAM,CAAAK,IAAA,EAAY,gDACP;IAAA,IACPC,SAAI,OAAAR,WAAO,CAAAS,KAAA,gBAAAC,OAAA;MACXC,EAAA,MAAAX,WAAS,CAAAY,MAAA;MACTC,OAAA,MAAQb,WAAA,CAAAY,MAAA,EAAQ;MACjBE,MACA,MAAWd,WAAI,CAAAe,OAAA;IAElB,GAAAC,UAAA;IACA,IAAAX,YAAA,CAAAY,SAAA;MAIAC,MAAM;QAEJC,UAAS,EAAAX;MACX;MAEAY,OAAM;IACN;IACA,IAAAf,YAAgB,CAAAgB,cAAc,UAAW;IAGzC,IAAAC,EAAA,YAAAA,CAAAC,IAAA;MACA;QACAC,OAAA,EAAAD,IAAA,CAAAC;MACD;IAED;IAGE,IAAAC,OAAM,GAAQH,EAAA;MACdE,OAAM,WAAa;MACnBE,IAAM;IAEN;IACA,IAAAC,OAAA,GAAAL,EAAA;MACAE,OAAA;MACDE,IAAA;IAED;IAEE,IAAAE,OAAM,GAAQN,EAAA;MACdE,OAAM;IAEN;IACD,IAAAtB,aAAA,CAAA2B,MAAA,EAAAJ,OAAA,CAAAD,OAAA,EAAAM,IAAA;IAED,IAAA5B,aAAA,CAAA2B,MAAK,EAAAF,OAAA,CAAAH,OAAA,EAAAM,IAAA;IAEH,IAAA5B,aAAM,CAAY2B,MAAU,EAAAD,OAAc,CAAAJ,OAAO,EAAAM,IAAA,UAAiB;EAClE;EAEA,IAAA5B,aAAM,CAAAK,IAAO,2DAAoC;IACjD,IAAAwB,KAAA,GAAAC,IAAA,CAAAC,SAAO;MACPT,OAAA;MACDE,IAAA;IAED;IACE,IAAAQ,KAAM,GAAKF,IAAA,CAAMC,SAAA;MAACT,OAAA;MAClBE,IAAA;IAEA;IACD,IAAAS,KAAA,GAAAH,IAAA,CAAAC,SAAA;MAEDT,OAAA;MACEE,IAAM;IAAsC;IAC5C,IAAAxB,aAAM,CAAA2B,MAAc,EAAAE,KAAS,EAAAK,GAAA,CAAAN,IAAA,CAAAI,KAAiB;IAAC,IAAAhC,aAAA,CAAA2B,MAAA,EAAAE,KAAA,EAAAK,GAAA,CAAAN,IAAA,CAAAK,KAAA;IAE/C,IAAAjC,aAAA,CAAA2B,MAAA,EAAAK,KAAA,EAAAE,GAAA,CAAAN,IAAc,CAAAK,KAAA;EAEd;EACF,CAAC,GAAAjC,aAAA,CAAAK,IAAA;IAED,IAAAwB,KAAA,GAAAC,IAAA,CAAAC,SAAK;MACHT,OAAM,YAAQ;MAAiBE,IAAA;IAC/B;IAAgC,IAAAQ,KAAA,GAAAF,IAAA,CAAAC,SAAA;MAChCT,OAAM,YAAc;MAAiBE,IAAA;IAErC;IACA,IAAAxB,aAAA,CAAA2B,MAAA,EAAAE,KAAA,EAAAD,IAAA,CAAAI,KAAc;EAEd;EACF,CAAC,GAAAhC,aAAA,CAAAK,IAAA;IACF,IAAA8B,SAAA,YAAAA,CAAAC,EAAA,EAAAC,IAAA","ignoreList":[]}
|
|
@@ -162,7 +162,7 @@ function generateSyncedQueriesFile(queries) {
|
|
|
162
162
|
const sortedFiles = Array.from(queryByFile.keys()).sort();
|
|
163
163
|
const imports = `// auto-generated by: on-zero generate
|
|
164
164
|
// server-side query definitions with validators
|
|
165
|
-
import { defineQuery, defineQueries } from '
|
|
165
|
+
import { defineQuery, defineQueries } from 'on-zero'
|
|
166
166
|
import * as v from 'valibot'
|
|
167
167
|
import * as Queries from './groupedQueries'
|
|
168
168
|
`;
|
|
@@ -212,7 +212,7 @@ function generateSyncedQueriesFile(queries) {
|
|
|
212
212
|
var sortedFiles = Array.from(queryByFile.keys()).sort();
|
|
213
213
|
var imports = `// auto-generated by: on-zero generate
|
|
214
214
|
// server-side query definitions with validators
|
|
215
|
-
import { defineQuery, defineQueries } from '
|
|
215
|
+
import { defineQuery, defineQueries } from 'on-zero'
|
|
216
216
|
import * as v from 'valibot'
|
|
217
217
|
import * as Queries from './groupedQueries'
|
|
218
218
|
`;
|
package/dist/esm/index.js
CHANGED
|
@@ -15,7 +15,8 @@ export * from "./mutations.mjs";
|
|
|
15
15
|
export * from "./where.mjs";
|
|
16
16
|
export * from "./serverWhere.mjs";
|
|
17
17
|
export * from "./zql.mjs";
|
|
18
|
+
import { defineQuery, defineQueries } from "@rocicorp/zero";
|
|
18
19
|
import { clearZeroClientData } from "./helpers/clearZeroClientData.mjs";
|
|
19
20
|
import { showZeroClientErrorOnce, resetShownZeroClientError } from "./helpers/showZeroClientError.mjs";
|
|
20
|
-
export { clearZeroClientData, ensureAuth, getAuth, resetShownZeroClientError, setAuthData, setEnvironment, setRunner, showZeroClientErrorOnce };
|
|
21
|
+
export { clearZeroClientData, defineQueries, defineQuery, ensureAuth, getAuth, resetShownZeroClientError, setAuthData, setEnvironment, setRunner, showZeroClientErrorOnce };
|
|
21
22
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ensureAuth","getAuth","setAuthData","setEnvironment","setRunner","clearZeroClientData","showZeroClientErrorOnce","resetShownZeroClientError"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASA,UAAA,EAAYC,OAAA,QAAe;AACpC,SAASC,WAAA,EAAaC,cAAA,QAAsB;AAE5C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,SAAA,QAAkC;AAC3C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;
|
|
1
|
+
{"version":3,"names":["ensureAuth","getAuth","setAuthData","setEnvironment","setRunner","defineQuery","defineQueries","clearZeroClientData","showZeroClientErrorOnce","resetShownZeroClientError"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASA,UAAA,EAAYC,OAAA,QAAe;AACpC,SAASC,WAAA,EAAaC,cAAA,QAAsB;AAE5C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,SAAA,QAAkC;AAC3C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,WAAA,EAAaC,aAAA,QAAqB;AAQ3C,SACEC,mBAAA,QAEK;AACP,SACEC,uBAAA,EACAC,yBAAA,QAGK","ignoreList":[]}
|
package/dist/esm/index.mjs
CHANGED
|
@@ -15,7 +15,8 @@ export * from "./mutations.mjs";
|
|
|
15
15
|
export * from "./where.mjs";
|
|
16
16
|
export * from "./serverWhere.mjs";
|
|
17
17
|
export * from "./zql.mjs";
|
|
18
|
+
import { defineQuery, defineQueries } from "@rocicorp/zero";
|
|
18
19
|
import { clearZeroClientData } from "./helpers/clearZeroClientData.mjs";
|
|
19
20
|
import { showZeroClientErrorOnce, resetShownZeroClientError } from "./helpers/showZeroClientError.mjs";
|
|
20
|
-
export { clearZeroClientData, ensureAuth, getAuth, resetShownZeroClientError, setAuthData, setEnvironment, setRunner, showZeroClientErrorOnce };
|
|
21
|
+
export { clearZeroClientData, defineQueries, defineQuery, ensureAuth, getAuth, resetShownZeroClientError, setAuthData, setEnvironment, setRunner, showZeroClientErrorOnce };
|
|
21
22
|
//# sourceMappingURL=index.mjs.map
|
package/dist/esm/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ensureAuth","getAuth","setAuthData","setEnvironment","setRunner","clearZeroClientData","showZeroClientErrorOnce","resetShownZeroClientError"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASA,UAAA,EAAYC,OAAA,QAAe;AACpC,SAASC,WAAA,EAAaC,cAAA,QAAsB;AAE5C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,SAAA,QAAkC;AAC3C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;
|
|
1
|
+
{"version":3,"names":["ensureAuth","getAuth","setAuthData","setEnvironment","setRunner","defineQuery","defineQueries","clearZeroClientData","showZeroClientErrorOnce","resetShownZeroClientError"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASA,UAAA,EAAYC,OAAA,QAAe;AACpC,SAASC,WAAA,EAAaC,cAAA,QAAsB;AAE5C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,SAAA,QAAkC;AAC3C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,WAAA,EAAaC,aAAA,QAAqB;AAQ3C,SACEC,mBAAA,QAEK;AACP,SACEC,uBAAA,EACAC,yBAAA,QAGK","ignoreList":[]}
|
package/dist/esm/index.native.js
CHANGED
|
@@ -15,7 +15,8 @@ export * from "./mutations.native.js";
|
|
|
15
15
|
export * from "./where.native.js";
|
|
16
16
|
export * from "./serverWhere.native.js";
|
|
17
17
|
export * from "./zql.native.js";
|
|
18
|
+
import { defineQuery, defineQueries } from "@rocicorp/zero";
|
|
18
19
|
import { clearZeroClientData } from "./helpers/clearZeroClientData.native.js";
|
|
19
20
|
import { showZeroClientErrorOnce, resetShownZeroClientError } from "./helpers/showZeroClientError.native.js";
|
|
20
|
-
export { clearZeroClientData, ensureAuth, getAuth, resetShownZeroClientError, setAuthData, setEnvironment, setRunner, showZeroClientErrorOnce };
|
|
21
|
+
export { clearZeroClientData, defineQueries, defineQuery, ensureAuth, getAuth, resetShownZeroClientError, setAuthData, setEnvironment, setRunner, showZeroClientErrorOnce };
|
|
21
22
|
//# sourceMappingURL=index.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ensureAuth","getAuth","setAuthData","setEnvironment","setRunner","clearZeroClientData","showZeroClientErrorOnce","resetShownZeroClientError"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASA,UAAA,EAAYC,OAAA,QAAe;AACpC,SAASC,WAAA,EAAaC,cAAA,QAAsB;AAE5C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,SAAA,QAAkC;AAC3C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;
|
|
1
|
+
{"version":3,"names":["ensureAuth","getAuth","setAuthData","setEnvironment","setRunner","defineQuery","defineQueries","clearZeroClientData","showZeroClientErrorOnce","resetShownZeroClientError"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASA,UAAA,EAAYC,OAAA,QAAe;AACpC,SAASC,WAAA,EAAaC,cAAA,QAAsB;AAE5C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,SAAA,QAAkC;AAC3C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,WAAA,EAAaC,aAAA,QAAqB;AAQ3C,SAAAC,mBAAA;AAAA,SACEC,uBAAA,EAAAC,yBAAA;AAAA,SAGFF,mBAAA,EACED,aAAA,EACAD,WAAA,EAAAL,UAGK,E","ignoreList":[]}
|
|
@@ -1,10 +1,21 @@
|
|
|
1
1
|
const QUERY_NAME_KEY = "__onZeroQueryName";
|
|
2
|
+
const queryNamesByFunctionName = /* @__PURE__ */new Map();
|
|
2
3
|
function registerQuery(fn, name) {
|
|
3
4
|
;
|
|
4
5
|
fn[QUERY_NAME_KEY] = name;
|
|
6
|
+
if (!fn.name) return;
|
|
7
|
+
const existing = queryNamesByFunctionName.get(fn.name);
|
|
8
|
+
if (existing === void 0 || existing === name) {
|
|
9
|
+
queryNamesByFunctionName.set(fn.name, name);
|
|
10
|
+
} else {
|
|
11
|
+
queryNamesByFunctionName.set(fn.name, null);
|
|
12
|
+
}
|
|
5
13
|
}
|
|
6
14
|
function getQueryName(fn) {
|
|
7
|
-
|
|
15
|
+
const stampedName = fn?.[QUERY_NAME_KEY];
|
|
16
|
+
if (stampedName) return stampedName;
|
|
17
|
+
const namedQuery = queryNamesByFunctionName.get(fn?.name);
|
|
18
|
+
return namedQuery ?? void 0;
|
|
8
19
|
}
|
|
9
20
|
export { getQueryName, registerQuery };
|
|
10
21
|
//# sourceMappingURL=queryRegistry.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["QUERY_NAME_KEY","registerQuery","fn","name","getQueryName"],"sources":["../../src/queryRegistry.ts"],"sourcesContent":[null],"mappings":"AASA,MAAMA,cAAA,GAAiB;
|
|
1
|
+
{"version":3,"names":["QUERY_NAME_KEY","queryNamesByFunctionName","Map","registerQuery","fn","name","existing","get","set","getQueryName","stampedName","namedQuery"],"sources":["../../src/queryRegistry.ts"],"sourcesContent":[null],"mappings":"AASA,MAAMA,cAAA,GAAiB;AACvB,MAAMC,wBAAA,GAA2B,mBAAIC,GAAA,CAA2B;AAEzD,SAASC,cAAcC,EAAA,EAAcC,IAAA,EAAc;EACxD;EAAED,EAAA,CAAWJ,cAAc,IAAIK,IAAA;EAE/B,IAAI,CAACD,EAAA,CAAGC,IAAA,EAAM;EAEd,MAAMC,QAAA,GAAWL,wBAAA,CAAyBM,GAAA,CAAIH,EAAA,CAAGC,IAAI;EACrD,IAAIC,QAAA,KAAa,UAAaA,QAAA,KAAaD,IAAA,EAAM;IAC/CJ,wBAAA,CAAyBO,GAAA,CAAIJ,EAAA,CAAGC,IAAA,EAAMA,IAAI;EAC5C,OAAO;IACLJ,wBAAA,CAAyBO,GAAA,CAAIJ,EAAA,CAAGC,IAAA,EAAM,IAAI;EAC5C;AACF;AAEO,SAASI,aAAaL,EAAA,EAAkC;EAC7D,MAAMM,WAAA,GAAeN,EAAA,GAAaJ,cAAc;EAChD,IAAIU,WAAA,EAAa,OAAOA,WAAA;EAExB,MAAMC,UAAA,GAAaV,wBAAA,CAAyBM,GAAA,CAAIH,EAAA,EAAIC,IAAI;EACxD,OAAOM,UAAA,IAAc;AACvB","ignoreList":[]}
|
|
@@ -1,10 +1,21 @@
|
|
|
1
1
|
var QUERY_NAME_KEY = "__onZeroQueryName";
|
|
2
|
+
var queryNamesByFunctionName = /* @__PURE__ */new Map();
|
|
2
3
|
function registerQuery(fn, name) {
|
|
3
4
|
;
|
|
4
5
|
fn[QUERY_NAME_KEY] = name;
|
|
6
|
+
if (!fn.name) return;
|
|
7
|
+
var existing = queryNamesByFunctionName.get(fn.name);
|
|
8
|
+
if (existing === void 0 || existing === name) {
|
|
9
|
+
queryNamesByFunctionName.set(fn.name, name);
|
|
10
|
+
} else {
|
|
11
|
+
queryNamesByFunctionName.set(fn.name, null);
|
|
12
|
+
}
|
|
5
13
|
}
|
|
6
14
|
function getQueryName(fn) {
|
|
7
|
-
|
|
15
|
+
var stampedName = fn === null || fn === void 0 ? void 0 : fn[QUERY_NAME_KEY];
|
|
16
|
+
if (stampedName) return stampedName;
|
|
17
|
+
var namedQuery = queryNamesByFunctionName.get(fn === null || fn === void 0 ? void 0 : fn.name);
|
|
18
|
+
return namedQuery !== null && namedQuery !== void 0 ? namedQuery : void 0;
|
|
8
19
|
}
|
|
9
20
|
export { getQueryName, registerQuery };
|
|
10
21
|
//# sourceMappingURL=queryRegistry.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["QUERY_NAME_KEY","registerQuery","fn","name","getQueryName"],"sources":["../../src/queryRegistry.ts"],"sourcesContent":[null],"mappings":"AASA,IAAAA,cAAM,sBAAiB;
|
|
1
|
+
{"version":3,"names":["QUERY_NAME_KEY","queryNamesByFunctionName","Map","registerQuery","fn","name","existing","get","set","getQueryName","stampedName","namedQuery"],"sources":["../../src/queryRegistry.ts"],"sourcesContent":[null],"mappings":"AASA,IAAAA,cAAM,sBAAiB;AACvB,IAAAC,wBAAM,kBAA2B,IAAAC,GAAI;AAE9B,SAASC,cAAcC,EAAA,EAAcC,IAAA,EAAc;EACxD;EAAED,EAAA,CAAWJ,cAAc,IAAIK,IAAA;EAE/B,IAAI,CAACD,EAAA,CAAGC,IAAA,EAAM;EAEd,IAAAC,QAAM,GAAAL,wBAAW,CAAAM,GAAyB,CAAAH,EAAI,CAAAC,IAAG;EACjD,IAAIC,QAAA,KAAa,UAAaA,QAAA,KAAaD,IAAA,EAAM;IAC/CJ,wBAAA,CAAyBO,GAAA,CAAIJ,EAAA,CAAGC,IAAA,EAAMA,IAAI;EAC5C,OAAO;IACLJ,wBAAA,CAAyBO,GAAA,CAAIJ,EAAA,CAAGC,IAAA,EAAM,IAAI;EAC5C;AACF;AAEO,SAASI,aAAaL,EAAA,EAAkC;EAC7D,IAAAM,WAAM,GAAAN,EAAe,KAAa,QAAAA,EAAA,KAAc,kBAAAA,EAAA,CAAAJ,cAAA;EAChD,IAAIU,WAAA,EAAa,OAAOA,WAAA;EAExB,IAAAC,UAAM,GAAAV,wBAAa,CAAAM,GAAyB,CAAAH,EAAI,KAAI,IAAI,IAAAA,EAAA,uBAAAA,EAAA,CAAAC,IAAA;EACxD,OAAOM,UAAA,KAAc,QAAAA,UAAA,cAAAA,UAAA;AACvB","ignoreList":[]}
|
|
@@ -77,5 +77,19 @@ describe("usePermission _uid query identity", () => {
|
|
|
77
77
|
registerQuery(fn, "permission.testEntity");
|
|
78
78
|
expect(getQueryName(fn)).toBe("permission.testEntity");
|
|
79
79
|
});
|
|
80
|
+
test("query lookup survives hot-reloaded function identity", () => {
|
|
81
|
+
const original = function activeProjects() {};
|
|
82
|
+
const hotReloaded = function activeProjects() {};
|
|
83
|
+
registerQuery(original, "project.activeProjects");
|
|
84
|
+
expect(getQueryName(hotReloaded)).toBe("project.activeProjects");
|
|
85
|
+
});
|
|
86
|
+
test("query lookup does not guess when names are ambiguous", () => {
|
|
87
|
+
const first = function byId() {};
|
|
88
|
+
const second = function byId() {};
|
|
89
|
+
const hotReloaded = function byId() {};
|
|
90
|
+
registerQuery(first, "project.byId");
|
|
91
|
+
registerQuery(second, "user.byId");
|
|
92
|
+
expect(getQueryName(hotReloaded)).toBeUndefined();
|
|
93
|
+
});
|
|
80
94
|
});
|
|
81
95
|
//# sourceMappingURL=usePermission.test.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["boolean","string","table","describe","expect","test","getMutationsPermissions","setMutationsPermissions","registerQuery","getQueryName","setEnvironment","setSchema","testTable","columns","id","ownerId","active","primaryKey","tables","testEntity","version","fn","args","objOrId","result1","_uid","result2","result3","toBe","args1","JSON","stringify","args2","args3","not","mockWhere","eb","auth","cmp","perm","toBeDefined"],"sources":["../../src/usePermission.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["boolean","string","table","describe","expect","test","getMutationsPermissions","setMutationsPermissions","registerQuery","getQueryName","setEnvironment","setSchema","testTable","columns","id","ownerId","active","primaryKey","tables","testEntity","version","fn","args","objOrId","result1","_uid","result2","result3","toBe","args1","JSON","stringify","args2","args3","not","mockWhere","eb","auth","cmp","perm","toBeDefined","original","activeProjects","hotReloaded","first","byId","second","toBeUndefined"],"sources":["../../src/usePermission.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAA,EAASC,MAAA,EAAQC,KAAA,QAAa;AACvC,SAASC,QAAA,EAAUC,MAAA,EAAQC,IAAA,QAAY;AAEvC,SAASC,uBAAA,EAAyBC,uBAAA,QAA+B;AACjE,SAASC,aAAA,EAAeC,YAAA,QAAoB;AAC5C,SAASC,cAAA,EAAgBC,SAAA,QAAiB;AAE1CR,QAAA,CAAS,qCAAqC,MAAM;EAUlDE,IAAA,CAAK,kDAAkD,MAAM;IAE3D,MAAMO,SAAA,GAAYV,KAAA,CAAM,YAAY,EACjCW,OAAA,CAAQ;MACPC,EAAA,EAAIb,MAAA,CAAO;MACXc,OAAA,EAASd,MAAA,CAAO;MAChBe,MAAA,EAAQhB,OAAA,CAAQ;IAClB,CAAC,EACAiB,UAAA,CAAW,IAAI;IAElBN,SAAA,CAAU;MAAEO,MAAA,EAAQ;QAAEC,UAAA,EAAYP;MAAU;MAAGQ,OAAA,EAAS;IAAE,CAAQ;IAClEV,cAAA,CAAe,QAAQ;IAIvB,MAAMW,EAAA,GAAMC,IAAA,IAAmE;MAE7E,OAAO;QAAEC,OAAA,EAASD,IAAA,CAAKC;MAAQ;IACjC;IAEA,MAAMC,OAAA,GAAUH,EAAA,CAAG;MAAEE,OAAA,EAAS;MAAWE,IAAA,EAAM;IAAS,CAAC;IACzD,MAAMC,OAAA,GAAUL,EAAA,CAAG;MAAEE,OAAA,EAAS;MAAWE,IAAA,EAAM;IAAS,CAAC;IACzD,MAAME,OAAA,GAAUN,EAAA,CAAG;MAAEE,OAAA,EAAS;IAAU,CAAC;IAGzCnB,MAAA,CAAOoB,OAAA,CAAQD,OAAO,EAAEK,IAAA,CAAK,SAAS;IACtCxB,MAAA,CAAOsB,OAAA,CAAQH,OAAO,EAAEK,IAAA,CAAK,SAAS;IACtCxB,MAAA,CAAOuB,OAAA,CAAQJ,OAAO,EAAEK,IAAA,CAAK,SAAS;EACxC,CAAC;EAEDvB,IAAA,CAAK,2DAA2D,MAAM;IAGpE,MAAMwB,KAAA,GAAQC,IAAA,CAAKC,SAAA,CAAU;MAAER,OAAA,EAAS;MAAYE,IAAA,EAAM;IAAS,CAAC;IACpE,MAAMO,KAAA,GAAQF,IAAA,CAAKC,SAAA,CAAU;MAAER,OAAA,EAAS;MAAYE,IAAA,EAAM;IAAS,CAAC;IACpE,MAAMQ,KAAA,GAAQH,IAAA,CAAKC,SAAA,CAAU;MAAER,OAAA,EAAS;MAAYE,IAAA,EAAM;IAAO,CAAC;IAElErB,MAAA,CAAOyB,KAAK,EAAEK,GAAA,CAAIN,IAAA,CAAKI,KAAK;IAC5B5B,MAAA,CAAOyB,KAAK,EAAEK,GAAA,CAAIN,IAAA,CAAKK,KAAK;IAC5B7B,MAAA,CAAO4B,KAAK,EAAEE,GAAA,CAAIN,IAAA,CAAKK,KAAK;EAC9B,CAAC;EAED5B,IAAA,CAAK,4CAA4C,MAAM;IAErD,MAAMwB,KAAA,GAAQC,IAAA,CAAKC,SAAA,CAAU;MAAER,OAAA,EAAS;MAAYE,IAAA,EAAM;IAAS,CAAC;IACpE,MAAMO,KAAA,GAAQF,IAAA,CAAKC,SAAA,CAAU;MAAER,OAAA,EAAS;MAAYE,IAAA,EAAM;IAAS,CAAC;IAEpErB,MAAA,CAAOyB,KAAK,EAAED,IAAA,CAAKI,KAAK;EAC1B,CAAC;EAED3B,IAAA,CAAK,kDAAkD,MAAM;IAE3D,MAAM8B,SAAA,GAAYA,CAACC,EAAA,EAASC,IAAA,KAAcD,EAAA,CAAGE,GAAA,CAAI,WAAWD,IAAA,EAAMvB,EAAA,IAAM,EAAE;IAC1EP,uBAAA,CAAwB,cAAc4B,SAAgB;IAEtD,MAAMI,IAAA,GAAOjC,uBAAA,CAAwB,YAAY;IACjDF,MAAA,CAAOmC,IAAI,EAAEC,WAAA,CAAY;IACzBpC,MAAA,CAAOmC,IAAI,EAAEX,IAAA,CAAKO,SAAS;EAC7B,CAAC;EAED9B,IAAA,CAAK,0DAA0D,MAAM;IACnE,MAAMgB,EAAA,GAAKA,CAAA,KAAM,CAAC;IAClBb,aAAA,CAAca,EAAA,EAAI,uBAAuB;IAEzCjB,MAAA,CAAOK,YAAA,CAAaY,EAAE,CAAC,EAAEO,IAAA,CAAK,uBAAuB;EACvD,CAAC;EAEDvB,IAAA,CAAK,wDAAwD,MAAM;IACjE,MAAMoC,QAAA,GAAW,SAASC,eAAA,EAAiB,CAAC;IAC5C,MAAMC,WAAA,GAAc,SAASD,eAAA,EAAiB,CAAC;IAE/ClC,aAAA,CAAciC,QAAA,EAAU,wBAAwB;IAEhDrC,MAAA,CAAOK,YAAA,CAAakC,WAAW,CAAC,EAAEf,IAAA,CAAK,wBAAwB;EACjE,CAAC;EAEDvB,IAAA,CAAK,wDAAwD,MAAM;IACjE,MAAMuC,KAAA,GAAQ,SAASC,KAAA,EAAO,CAAC;IAC/B,MAAMC,MAAA,GAAS,SAASD,KAAA,EAAO,CAAC;IAChC,MAAMF,WAAA,GAAc,SAASE,KAAA,EAAO,CAAC;IAErCrC,aAAA,CAAcoC,KAAA,EAAO,cAAc;IACnCpC,aAAA,CAAcsC,MAAA,EAAQ,WAAW;IAEjC1C,MAAA,CAAOK,YAAA,CAAakC,WAAW,CAAC,EAAEI,aAAA,CAAc;EAClD,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -79,5 +79,19 @@ describe("usePermission _uid query identity", function () {
|
|
|
79
79
|
registerQuery(fn, "permission.testEntity");
|
|
80
80
|
expect(getQueryName(fn)).toBe("permission.testEntity");
|
|
81
81
|
});
|
|
82
|
+
test("query lookup survives hot-reloaded function identity", function () {
|
|
83
|
+
var original = function activeProjects() {};
|
|
84
|
+
var hotReloaded = function activeProjects() {};
|
|
85
|
+
registerQuery(original, "project.activeProjects");
|
|
86
|
+
expect(getQueryName(hotReloaded)).toBe("project.activeProjects");
|
|
87
|
+
});
|
|
88
|
+
test("query lookup does not guess when names are ambiguous", function () {
|
|
89
|
+
var first = function byId() {};
|
|
90
|
+
var second = function byId() {};
|
|
91
|
+
var hotReloaded = function byId() {};
|
|
92
|
+
registerQuery(first, "project.byId");
|
|
93
|
+
registerQuery(second, "user.byId");
|
|
94
|
+
expect(getQueryName(hotReloaded)).toBeUndefined();
|
|
95
|
+
});
|
|
82
96
|
});
|
|
83
97
|
//# sourceMappingURL=usePermission.test.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["boolean","string","table","describe","expect","test","getMutationsPermissions","setMutationsPermissions","registerQuery","getQueryName","setEnvironment","setSchema","testTable","columns","id","ownerId","active","primaryKey","tables","testEntity","version","fn","args","objOrId","result1","_uid","result2","result3","toBe","args1","JSON","stringify","args2","args3"],"sources":["../../src/usePermission.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAA,EAASC,MAAA,EAAQC,KAAA,QAAa;AACvC,SAASC,QAAA,EAAUC,MAAA,EAAQC,IAAA,QAAY;AAEvC,SAASC,uBAAA,EAAyBC,uBAAA,QAA+B;AACjE,SAASC,aAAA,EAAeC,YAAA,QAAoB;AAC5C,SAASC,cAAA,EAAgBC,SAAA,QAAiB;AAE1CR,QAAA,CAAS,qCAAqC,YAAM;EAUlDE,IAAA,CAAK,kDAAkD,YAAM;IAE3D,IAAAO,SAAM,GAAAV,KAAY,aAAM,EAAYW,OACjC;MACCC,EAAA,EAAIb,MAAA,CAAO;MACXc,OAAA,EAASd,MAAA,CAAO;MAChBe,MAAA,EAAQhB,OAAA,CAAQ;IAClB,CAAC,EACAiB,UAAA,CAAW,IAAI;IAElBN,SAAA,CAAU;MACVO,MAAA;QAIAC,UAAY,EAAAP;MAEV;MACFQ,OAAA;IAEA;IACAV,cAAM,SAAe;IACrB,IAAAW,EAAM,YAAAA,CAAUC,IAAK;MAGrB,OAAO;QACPC,OAAO,EAAAD,IAAQ,CAAAC;MACf;IACD;IAED,IAAKC,OAAA,GAAAH,EAAA;MAGHE,OAAM,WAAa;MACnBE,IAAM;IACN;IAEA,IAAAC,OAAO,GAAOL,EAAA;MACdE,OAAO,WAAW;MAClBE,IAAA,EAAO;IACR;IAED,IAAKE,OAAA,GAAAN,EAAA;MAEHE,OAAM;IACN;IAEAnB,MAAA,CAAOoB,OAAO,CAAAD,OAAK,EAAKK,IAAA;IACzBxB,MAAA,CAAAsB,OAAA,CAAAH,OAAA,EAAAK,IAAA;IAEDxB,MAAK,CAAAuB,OAAA,CAAAJ,OAAA,EAAAK,IAAA;EAEH;EACAvB,IAAA,0DAAsD;IAEtD,IAAAwB,KAAM,GAAAC,IAAO,CAAAC,SAAA;MACbR,OAAO,EAAI,UAAE;MACbE,IAAA,EAAO;IACR;IAED,IAAKO,KAAA,GAAAF,IAAA,CAAAC,SAAA;MACHR,OAAM,EAAK,UAAM;MAACE,IAAA;IAClB;IAEA,IAAAQ,KAAO,GAAAH,IAAA,CAAAC,SAAkB;MAC1BR,OAAA;
|
|
1
|
+
{"version":3,"names":["boolean","string","table","describe","expect","test","getMutationsPermissions","setMutationsPermissions","registerQuery","getQueryName","setEnvironment","setSchema","testTable","columns","id","ownerId","active","primaryKey","tables","testEntity","version","fn","args","objOrId","result1","_uid","result2","result3","toBe","args1","JSON","stringify","args2","args3","not","mockWhere","eb","auth","cmp"],"sources":["../../src/usePermission.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAA,EAASC,MAAA,EAAQC,KAAA,QAAa;AACvC,SAASC,QAAA,EAAUC,MAAA,EAAQC,IAAA,QAAY;AAEvC,SAASC,uBAAA,EAAyBC,uBAAA,QAA+B;AACjE,SAASC,aAAA,EAAeC,YAAA,QAAoB;AAC5C,SAASC,cAAA,EAAgBC,SAAA,QAAiB;AAE1CR,QAAA,CAAS,qCAAqC,YAAM;EAUlDE,IAAA,CAAK,kDAAkD,YAAM;IAE3D,IAAAO,SAAM,GAAAV,KAAY,aAAM,EAAYW,OACjC;MACCC,EAAA,EAAIb,MAAA,CAAO;MACXc,OAAA,EAASd,MAAA,CAAO;MAChBe,MAAA,EAAQhB,OAAA,CAAQ;IAClB,CAAC,EACAiB,UAAA,CAAW,IAAI;IAElBN,SAAA,CAAU;MACVO,MAAA;QAIAC,UAAY,EAAAP;MAEV;MACFQ,OAAA;IAEA;IACAV,cAAM,SAAe;IACrB,IAAAW,EAAM,YAAAA,CAAUC,IAAK;MAGrB,OAAO;QACPC,OAAO,EAAAD,IAAQ,CAAAC;MACf;IACD;IAED,IAAKC,OAAA,GAAAH,EAAA;MAGHE,OAAM,WAAa;MACnBE,IAAM;IACN;IAEA,IAAAC,OAAO,GAAOL,EAAA;MACdE,OAAO,WAAW;MAClBE,IAAA,EAAO;IACR;IAED,IAAKE,OAAA,GAAAN,EAAA;MAEHE,OAAM;IACN;IAEAnB,MAAA,CAAOoB,OAAO,CAAAD,OAAK,EAAKK,IAAA;IACzBxB,MAAA,CAAAsB,OAAA,CAAAH,OAAA,EAAAK,IAAA;IAEDxB,MAAK,CAAAuB,OAAA,CAAAJ,OAAA,EAAAK,IAAA;EAEH;EACAvB,IAAA,0DAAsD;IAEtD,IAAAwB,KAAM,GAAAC,IAAO,CAAAC,SAAA;MACbR,OAAO,EAAI,UAAE;MACbE,IAAA,EAAO;IACR;IAED,IAAKO,KAAA,GAAAF,IAAA,CAAAC,SAAA;MACHR,OAAM,EAAK,UAAM;MAACE,IAAA;IAClB;IAEA,IAAAQ,KAAO,GAAAH,IAAA,CAAAC,SAAkB;MAC1BR,OAAA;MAEDE,IAAK;IACH;IAA4CrB,MAAA,CAAAyB,KAAA,EAAAK,GAAA,CAAAN,IAAA,CAAAI,KAAA;IAC5C5B,MAAM,CAAAyB,KAAA,EAAAK,GAAA,CAAAN,IAAc,CAAAK,KAAA,CAAS;IAAkB7B,MAAA,CAAA4B,KAAA,EAAAE,GAAA,CAAAN,IAAA,CAAAK,KAAA;EAE/C;EAEA5B,IAAA,2CAAuC;IACxC,IAAAwB,KAAA,GAAAC,IAAA,CAAAC,SAAA;MAEDR,OAAK;MACHE,IAAM;IAAyB;IAC/B,IAAAO,KAAM,GAAAF,IAAS,CAAAC,SAAS;MAAQR,OAAA;MAChCE,IAAM;IAA+B;IAErCrB,MAAA,CAAAyB,KAAA,EAAcD,IAAA,CAAAI,KAAO;EACrB;EAEA3B,IAAA,iDAAgD;IACjD,IAAA8B,SAAA,YAAAA,CAAAC,EAAA,EAAAC,IAAA;MACF,OAAAD,EAAA,CAAAE,GAAA,aAAAD,IAAA,aAAAA,IAAA,uBAAAA,IAAA,CAAAvB,EAAA","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "on-zero",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.6",
|
|
4
4
|
"description": "A typed layer over @rocicorp/zero with queries, mutations, and permissions",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"source": "src/index.ts",
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
}
|
|
78
78
|
},
|
|
79
79
|
"dependencies": {
|
|
80
|
-
"@take-out/helpers": "0.4.
|
|
80
|
+
"@take-out/helpers": "0.4.6",
|
|
81
81
|
"chokidar": "^4.0.3",
|
|
82
82
|
"citty": "^0.1.6",
|
|
83
83
|
"valibot": "^1.1.0"
|
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
},
|
|
107
107
|
"devDependencies": {
|
|
108
108
|
"drizzle-zero": "1.0.0-beta.0",
|
|
109
|
-
"@tamagui/build": "2.0.0-rc.
|
|
109
|
+
"@tamagui/build": "2.0.0-rc.42",
|
|
110
110
|
"@types/node": "25.2.0",
|
|
111
111
|
"@types/pg": "^8.11.10",
|
|
112
112
|
"@types/react": "^19.0.0",
|
package/src/generate-helpers.ts
CHANGED
|
@@ -249,7 +249,7 @@ export function generateSyncedQueriesFile(
|
|
|
249
249
|
|
|
250
250
|
const imports = `// auto-generated by: on-zero generate
|
|
251
251
|
// server-side query definitions with validators
|
|
252
|
-
import { defineQuery, defineQueries } from '
|
|
252
|
+
import { defineQuery, defineQueries } from 'on-zero'
|
|
253
253
|
import * as v from 'valibot'
|
|
254
254
|
import * as Queries from './groupedQueries'
|
|
255
255
|
`
|
package/src/index.ts
CHANGED
|
@@ -16,6 +16,7 @@ export * from './mutations'
|
|
|
16
16
|
export * from './where'
|
|
17
17
|
export * from './serverWhere'
|
|
18
18
|
export * from './zql'
|
|
19
|
+
export { defineQuery, defineQueries } from '@rocicorp/zero'
|
|
19
20
|
|
|
20
21
|
// drizzle-zero re-exports moved to 'on-zero/drizzle' to avoid pulling
|
|
21
22
|
// drizzle-zero + drizzle-orm/_relations into the main bundle
|
package/src/queryRegistry.ts
CHANGED
|
@@ -8,11 +8,25 @@
|
|
|
8
8
|
// context).
|
|
9
9
|
|
|
10
10
|
const QUERY_NAME_KEY = '__onZeroQueryName'
|
|
11
|
+
const queryNamesByFunctionName = new Map<string, string | null>()
|
|
11
12
|
|
|
12
13
|
export function registerQuery(fn: Function, name: string) {
|
|
13
14
|
;(fn as any)[QUERY_NAME_KEY] = name
|
|
15
|
+
|
|
16
|
+
if (!fn.name) return
|
|
17
|
+
|
|
18
|
+
const existing = queryNamesByFunctionName.get(fn.name)
|
|
19
|
+
if (existing === undefined || existing === name) {
|
|
20
|
+
queryNamesByFunctionName.set(fn.name, name)
|
|
21
|
+
} else {
|
|
22
|
+
queryNamesByFunctionName.set(fn.name, null)
|
|
23
|
+
}
|
|
14
24
|
}
|
|
15
25
|
|
|
16
26
|
export function getQueryName(fn: Function): string | undefined {
|
|
17
|
-
|
|
27
|
+
const stampedName = (fn as any)?.[QUERY_NAME_KEY]
|
|
28
|
+
if (stampedName) return stampedName
|
|
29
|
+
|
|
30
|
+
const namedQuery = queryNamesByFunctionName.get(fn?.name)
|
|
31
|
+
return namedQuery ?? undefined
|
|
18
32
|
}
|
|
@@ -81,4 +81,24 @@ describe('usePermission _uid query identity', () => {
|
|
|
81
81
|
|
|
82
82
|
expect(getQueryName(fn)).toBe('permission.testEntity')
|
|
83
83
|
})
|
|
84
|
+
|
|
85
|
+
test('query lookup survives hot-reloaded function identity', () => {
|
|
86
|
+
const original = function activeProjects() {}
|
|
87
|
+
const hotReloaded = function activeProjects() {}
|
|
88
|
+
|
|
89
|
+
registerQuery(original, 'project.activeProjects')
|
|
90
|
+
|
|
91
|
+
expect(getQueryName(hotReloaded)).toBe('project.activeProjects')
|
|
92
|
+
})
|
|
93
|
+
|
|
94
|
+
test('query lookup does not guess when names are ambiguous', () => {
|
|
95
|
+
const first = function byId() {}
|
|
96
|
+
const second = function byId() {}
|
|
97
|
+
const hotReloaded = function byId() {}
|
|
98
|
+
|
|
99
|
+
registerQuery(first, 'project.byId')
|
|
100
|
+
registerQuery(second, 'user.byId')
|
|
101
|
+
|
|
102
|
+
expect(getQueryName(hotReloaded)).toBeUndefined()
|
|
103
|
+
})
|
|
84
104
|
})
|
package/types/index.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ export * from './mutations';
|
|
|
15
15
|
export * from './where';
|
|
16
16
|
export * from './serverWhere';
|
|
17
17
|
export * from './zql';
|
|
18
|
+
export { defineQuery, defineQueries } from '@rocicorp/zero';
|
|
18
19
|
export type * from './types';
|
|
19
20
|
export { clearZeroClientData, type ClearZeroClientDataOptions, } from './helpers/clearZeroClientData';
|
|
20
21
|
export { showZeroClientErrorOnce, resetShownZeroClientError, type ShowZeroClientErrorOptions, type ZeroClientErrorInfo, } from './helpers/showZeroClientError';
|
package/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAErD,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,OAAO,CAAA;AACrB,OAAO,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAA;AACzD,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAErD,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,OAAO,CAAA;AACrB,OAAO,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAA;AACzD,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,OAAO,CAAA;AACrB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAM3D,mBAAmB,SAAS,CAAA;AAE5B,OAAO,EACL,mBAAmB,EACnB,KAAK,0BAA0B,GAChC,MAAM,+BAA+B,CAAA;AACtC,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,KAAK,0BAA0B,EAC/B,KAAK,mBAAmB,GACzB,MAAM,+BAA+B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryRegistry.d.ts","sourceRoot":"","sources":["../src/queryRegistry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"queryRegistry.d.ts","sourceRoot":"","sources":["../src/queryRegistry.ts"],"names":[],"mappings":"AAYA,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,QAWvD;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAM7D"}
|