@milaboratories/pframes-rs-node 1.0.57 → 1.0.63
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/README.md +17 -5
- package/export/addon-def.ts +0 -1
- package/export/dump.ts +13 -14
- package/export/export.ts +10 -10
- package/export/index.ts +2 -1
- package/export/wrapper.ts +143 -132
- package/export_dist/addon-def.d.ts +1 -1
- package/export_dist/addon-def.d.ts.map +1 -1
- package/export_dist/addon.cjs +24 -0
- package/export_dist/addon.cjs.map +1 -0
- package/export_dist/addon.d.ts +1 -1
- package/export_dist/addon.js +21 -0
- package/export_dist/addon.js.map +1 -0
- package/export_dist/dump.cjs +133 -0
- package/export_dist/dump.cjs.map +1 -0
- package/export_dist/dump.d.ts +1 -1
- package/export_dist/dump.d.ts.map +1 -1
- package/export_dist/dump.js +125 -0
- package/export_dist/dump.js.map +1 -0
- package/export_dist/export.cjs +15 -0
- package/export_dist/export.cjs.map +1 -0
- package/export_dist/export.d.ts +2 -6
- package/export_dist/export.d.ts.map +1 -1
- package/export_dist/export.js +13 -0
- package/export_dist/export.js.map +1 -0
- package/export_dist/index.cjs +13 -0
- package/export_dist/index.cjs.map +1 -0
- package/export_dist/index.d.ts +2 -1
- package/export_dist/index.d.ts.map +1 -1
- package/export_dist/index.js +2 -21
- package/export_dist/index.js.map +1 -1
- package/export_dist/wrapper.cjs +511 -0
- package/export_dist/wrapper.cjs.map +1 -0
- package/export_dist/wrapper.d.ts +32 -10
- package/export_dist/wrapper.d.ts.map +1 -1
- package/export_dist/wrapper.js +508 -0
- package/export_dist/wrapper.js.map +1 -0
- package/package.json +34 -33
- package/export_dist/index.mjs +0 -765
- package/export_dist/index.mjs.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PColumnInfo, PColumnSpec, PObjectId, PTableColumnId, PTableColumnSpec, PTableRecordFilter, PTableShape, PTableSorting, PTableVector, TableRange, UniqueValuesRequest, UniqueValuesResponse } from '@milaboratories/pl-model-common';
|
|
2
|
-
import { PFrameInternal } from '@milaboratories/pl-model-middle-layer';
|
|
2
|
+
import type { PFrameInternal } from '@milaboratories/pl-model-middle-layer';
|
|
3
3
|
export type FrameId = string & {
|
|
4
4
|
__brand: 'FrameId';
|
|
5
5
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addon-def.d.ts","sourceRoot":"","sources":["../export/addon-def.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"addon-def.d.ts","sourceRoot":"","sources":["../export/addon-def.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,WAAW,EACX,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,EACX,aAAa,EACb,YAAY,EACZ,UAAU,EACV,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAE5E,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG;IAAE,OAAO,EAAE,SAAS,CAAA;CAAE,CAAC;AACtD,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG;IAAE,OAAO,EAAE,SAAS,CAAA;CAAE,CAAC;AAEtD,MAAM,WAAW,eAAgB,SAAQ,MAAM;CAAG;AAElD,MAAM,WAAW,eAAgB,SAAQ,MAAM;CAAG;AAElD,UAAU,YAAY;IACpB,SAAS,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;CACtC;AAED,UAAU,SAAS;IACjB,YAAY,EAAE,CACZ,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,cAAc,CAAC,MAAM,GAAG,SAAS,KACtC,eAAe,CAAC;IACrB,mBAAmB,EAAE,CACnB,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,SAAS,EACnB,UAAU,EAAE,WAAW,KACpB,IAAI,CAAC;IACV,mBAAmB,EAAE,CACnB,MAAM,EAAE,eAAe,EACvB,UAAU,EAAE,cAAc,CAAC,gBAAgB,KACxC,IAAI,CAAC;IACV,mBAAmB,EAAE,CACnB,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,EAC9D,MAAM,EAAE,WAAW,GAAG,SAAS,KAC5B,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,aAAa,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IACjD,iBAAiB,EAAE,CACjB,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,cAAc,CAAC,kBAAkB,KACvC,OAAO,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;IACjD,kBAAkB,EAAE,CAClB,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,cAAc,CAAC,8BAA8B,KACnD,OAAO,CAAC,cAAc,CAAC,+BAA+B,CAAC,CAAC;IAC7D,mBAAmB,EAAE,CACnB,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,SAAS,KAChB,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1B,iBAAiB,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACvE,iBAAiB,EAAE,CACjB,MAAM,EAAE,eAAe,EACvB,EAAE,EAAE,OAAO,EACX,OAAO,EAAE,cAAc,CAAC,oBAAoB,KACzC,eAAe,CAAC;IACrB,qBAAqB,EAAE,CACrB,MAAM,EAAE,eAAe,EACvB,EAAE,EAAE,OAAO,EACX,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,WAAW,GAAG,SAAS,KAC5B,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACpC;AAED,UAAU,SAAS;IACjB,aAAa,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,gBAAgB,EAAE,CAAC;IAC9D,sBAAsB,EAAE,CACtB,KAAK,EAAE,eAAe,EACtB,SAAS,EAAE,cAAc,EAAE,KACxB,MAAM,EAAE,CAAC;IACd,kBAAkB,EAAE,CAClB,KAAK,EAAE,eAAe,EACtB,gBAAgB,EAAE,OAAO,EACzB,MAAM,EAAE,WAAW,GAAG,SAAS,KAC5B,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,cAAc,EAAE,CACd,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,WAAW,GAAG,SAAS,KAC5B,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1B,aAAa,EAAE,CACb,KAAK,EAAE,eAAe,EACtB,EAAE,EAAE,OAAO,EACX,aAAa,EAAE,MAAM,EAAE,EACvB,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,MAAM,EAAE,WAAW,GAAG,SAAS,KAC5B,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC7B,YAAY,EAAE,CACZ,KAAK,EAAE,eAAe,EACtB,EAAE,EAAE,OAAO,EACX,OAAO,EAAE,kBAAkB,EAAE,KAC1B,eAAe,CAAC;IACrB,UAAU,EAAE,CACV,KAAK,EAAE,eAAe,EACtB,EAAE,EAAE,OAAO,EACX,OAAO,EAAE,aAAa,EAAE,KACrB,eAAe,CAAC;IACrB,aAAa,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;CACjD;AAED,MAAM,WAAW,WACf,SAAQ,MAAM,EACZ,YAAY,EACZ,SAAS,EACT,SAAS;CAAG"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var node_module = require('node:module');
|
|
4
|
+
var path = require('node:path');
|
|
5
|
+
var node_url = require('node:url');
|
|
6
|
+
var gyp = require('@mapbox/node-pre-gyp');
|
|
7
|
+
|
|
8
|
+
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
|
|
9
|
+
const nodeFileUrl = (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('addon.cjs', document.baseURI).href));
|
|
10
|
+
const nodeDirname = path.dirname(node_url.fileURLToPath(nodeFileUrl));
|
|
11
|
+
const nodeRequire = node_module.createRequire(nodeFileUrl);
|
|
12
|
+
const { find: findAddon } = gyp;
|
|
13
|
+
// Pre-gyp reads binary section from package.json and constructs a path to addon
|
|
14
|
+
// https://github.com/mapbox/node-pre-gyp/blob/a541932680034f5de9e7365ef8d9a0d7a11cc1a9/lib/package.js#L35
|
|
15
|
+
// Require calls dlopen under the hood
|
|
16
|
+
// https://nodejs.org/api/process.html#processdlopenmodule-filename-flags
|
|
17
|
+
// DLOpen then searches for napi_register_module_v1 in addon export table
|
|
18
|
+
// https://github.com/search?q=repo%3Anodejs%2Fnode%20NAPI_MODULE_INITIALIZER&type=code
|
|
19
|
+
// And neon exports napi_register_module_v1 from #[neon::main]
|
|
20
|
+
// https://github.com/neon-bindings/neon/blob/b1728fa21e968ccde9611ac9955cf6d638be16e6/crates/neon/src/context/internal.rs#L76
|
|
21
|
+
const AddonSymbol = nodeRequire(findAddon(path.resolve(nodeDirname, '../package.json')));
|
|
22
|
+
|
|
23
|
+
exports.AddonSymbol = AddonSymbol;
|
|
24
|
+
//# sourceMappingURL=addon.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addon.cjs","sources":["../export/addon.ts"],"sourcesContent":["import { createRequire } from 'node:module';\nimport { dirname, resolve } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport gyp from '@mapbox/node-pre-gyp';\nimport type { AddonSymbol } from './addon-def';\n\nconst nodeFileUrl = import.meta.url;\nconst nodeDirname = dirname(fileURLToPath(nodeFileUrl));\nconst nodeRequire = createRequire(nodeFileUrl);\n\nconst { find: findAddon } = gyp;\n\n// Pre-gyp reads binary section from package.json and constructs a path to addon\n// https://github.com/mapbox/node-pre-gyp/blob/a541932680034f5de9e7365ef8d9a0d7a11cc1a9/lib/package.js#L35\n// Require calls dlopen under the hood\n// https://nodejs.org/api/process.html#processdlopenmodule-filename-flags\n// DLOpen then searches for napi_register_module_v1 in addon export table\n// https://github.com/search?q=repo%3Anodejs%2Fnode%20NAPI_MODULE_INITIALIZER&type=code\n// And neon exports napi_register_module_v1 from #[neon::main]\n// https://github.com/neon-bindings/neon/blob/b1728fa21e968ccde9611ac9955cf6d638be16e6/crates/neon/src/context/internal.rs#L76\nconst AddonSymbol = nodeRequire(\n findAddon(resolve(nodeDirname, '../package.json'))\n) as AddonSymbol;\n\nexport { AddonSymbol };\n"],"names":["dirname","fileURLToPath","createRequire","resolve"],"mappings":";;;;;;;;AAMA,MAAM,WAAW,GAAG,2PAAe;AACnC,MAAM,WAAW,GAAGA,YAAO,CAACC,sBAAa,CAAC,WAAW,CAAC,CAAC;AACvD,MAAM,WAAW,GAAGC,yBAAa,CAAC,WAAW,CAAC;AAE9C,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,GAAG;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,WAAW,GAAG,WAAW,CAC7B,SAAS,CAACC,YAAO,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;;;;"}
|
package/export_dist/addon.d.ts
CHANGED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';
|
|
2
|
+
import { dirname, resolve } from 'node:path';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import gyp from '@mapbox/node-pre-gyp';
|
|
5
|
+
|
|
6
|
+
const nodeFileUrl = import.meta.url;
|
|
7
|
+
const nodeDirname = dirname(fileURLToPath(nodeFileUrl));
|
|
8
|
+
const nodeRequire = createRequire(nodeFileUrl);
|
|
9
|
+
const { find: findAddon } = gyp;
|
|
10
|
+
// Pre-gyp reads binary section from package.json and constructs a path to addon
|
|
11
|
+
// https://github.com/mapbox/node-pre-gyp/blob/a541932680034f5de9e7365ef8d9a0d7a11cc1a9/lib/package.js#L35
|
|
12
|
+
// Require calls dlopen under the hood
|
|
13
|
+
// https://nodejs.org/api/process.html#processdlopenmodule-filename-flags
|
|
14
|
+
// DLOpen then searches for napi_register_module_v1 in addon export table
|
|
15
|
+
// https://github.com/search?q=repo%3Anodejs%2Fnode%20NAPI_MODULE_INITIALIZER&type=code
|
|
16
|
+
// And neon exports napi_register_module_v1 from #[neon::main]
|
|
17
|
+
// https://github.com/neon-bindings/neon/blob/b1728fa21e968ccde9611ac9955cf6d638be16e6/crates/neon/src/context/internal.rs#L76
|
|
18
|
+
const AddonSymbol = nodeRequire(findAddon(resolve(nodeDirname, '../package.json')));
|
|
19
|
+
|
|
20
|
+
export { AddonSymbol };
|
|
21
|
+
//# sourceMappingURL=addon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addon.js","sources":["../export/addon.ts"],"sourcesContent":["import { createRequire } from 'node:module';\nimport { dirname, resolve } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport gyp from '@mapbox/node-pre-gyp';\nimport type { AddonSymbol } from './addon-def';\n\nconst nodeFileUrl = import.meta.url;\nconst nodeDirname = dirname(fileURLToPath(nodeFileUrl));\nconst nodeRequire = createRequire(nodeFileUrl);\n\nconst { find: findAddon } = gyp;\n\n// Pre-gyp reads binary section from package.json and constructs a path to addon\n// https://github.com/mapbox/node-pre-gyp/blob/a541932680034f5de9e7365ef8d9a0d7a11cc1a9/lib/package.js#L35\n// Require calls dlopen under the hood\n// https://nodejs.org/api/process.html#processdlopenmodule-filename-flags\n// DLOpen then searches for napi_register_module_v1 in addon export table\n// https://github.com/search?q=repo%3Anodejs%2Fnode%20NAPI_MODULE_INITIALIZER&type=code\n// And neon exports napi_register_module_v1 from #[neon::main]\n// https://github.com/neon-bindings/neon/blob/b1728fa21e968ccde9611ac9955cf6d638be16e6/crates/neon/src/context/internal.rs#L76\nconst AddonSymbol = nodeRequire(\n findAddon(resolve(nodeDirname, '../package.json'))\n) as AddonSymbol;\n\nexport { AddonSymbol };\n"],"names":[],"mappings":";;;;;AAMA,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG;AACnC,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;AACvD,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC;AAE9C,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,GAAG;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,WAAW,GAAG,WAAW,CAC7B,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;;;;"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var node_crypto = require('node:crypto');
|
|
4
|
+
var node_fs = require('node:fs');
|
|
5
|
+
var path = require('node:path');
|
|
6
|
+
var node_stream = require('node:stream');
|
|
7
|
+
var promises = require('node:stream/promises');
|
|
8
|
+
|
|
9
|
+
function fileExists(path) {
|
|
10
|
+
return node_fs.promises
|
|
11
|
+
.access(path)
|
|
12
|
+
.then(() => true)
|
|
13
|
+
.catch(() => false);
|
|
14
|
+
}
|
|
15
|
+
async function ensureDirExists(fileOrDir) {
|
|
16
|
+
if (!(await fileExists(fileOrDir))) {
|
|
17
|
+
await node_fs.promises.mkdir(fileOrDir, { recursive: true });
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
async function writeFile(filePath, data) {
|
|
21
|
+
const tempPath = `${filePath}.tmp`;
|
|
22
|
+
if (await fileExists(tempPath)) {
|
|
23
|
+
await node_fs.promises.rm(tempPath, { recursive: true });
|
|
24
|
+
}
|
|
25
|
+
const buffer = typeof data === 'string' ? Buffer.from(data, 'utf8') : data;
|
|
26
|
+
const source = node_stream.Readable.from(buffer);
|
|
27
|
+
const destination = node_fs.createWriteStream(tempPath, { flags: 'wx' });
|
|
28
|
+
await promises.pipeline(source, destination);
|
|
29
|
+
await node_fs.promises.rename(tempPath, filePath);
|
|
30
|
+
}
|
|
31
|
+
function hashColumnId(columnId) {
|
|
32
|
+
return node_crypto.createHash('sha256').update(columnId).digest('hex');
|
|
33
|
+
}
|
|
34
|
+
function hashTableColumnId(tableId) {
|
|
35
|
+
if (tableId.type === 'column') {
|
|
36
|
+
return {
|
|
37
|
+
...tableId,
|
|
38
|
+
id: hashColumnId(tableId.id)
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
return tableId;
|
|
42
|
+
}
|
|
43
|
+
function hashFilterColumnId(filter) {
|
|
44
|
+
return {
|
|
45
|
+
...filter,
|
|
46
|
+
column: hashTableColumnId(filter.column)
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
function hashUniqueValuesRequestColumnId(request) {
|
|
50
|
+
return {
|
|
51
|
+
...request,
|
|
52
|
+
columnId: hashColumnId(request.columnId),
|
|
53
|
+
filters: request.filters.map(hashFilterColumnId)
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
function hashSortingColumnId(sorting) {
|
|
57
|
+
return {
|
|
58
|
+
...sorting,
|
|
59
|
+
column: hashTableColumnId(sorting.column)
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
function hashJoinEntryColumnId(entry) {
|
|
63
|
+
const type = entry.type;
|
|
64
|
+
switch (type) {
|
|
65
|
+
case 'column':
|
|
66
|
+
return {
|
|
67
|
+
...entry,
|
|
68
|
+
columnId: hashColumnId(entry.columnId)
|
|
69
|
+
};
|
|
70
|
+
case 'slicedColumn':
|
|
71
|
+
return {
|
|
72
|
+
...entry,
|
|
73
|
+
columnId: hashColumnId(entry.columnId),
|
|
74
|
+
newId: hashColumnId(entry.newId)
|
|
75
|
+
};
|
|
76
|
+
case 'inlineColumn':
|
|
77
|
+
return {
|
|
78
|
+
...entry,
|
|
79
|
+
newId: hashColumnId(entry.newId)
|
|
80
|
+
};
|
|
81
|
+
case 'inner':
|
|
82
|
+
return {
|
|
83
|
+
...entry,
|
|
84
|
+
entries: entry.entries.map(hashJoinEntryColumnId)
|
|
85
|
+
};
|
|
86
|
+
case 'full':
|
|
87
|
+
return {
|
|
88
|
+
...entry,
|
|
89
|
+
entries: entry.entries.map(hashJoinEntryColumnId)
|
|
90
|
+
};
|
|
91
|
+
case 'outer':
|
|
92
|
+
return {
|
|
93
|
+
...entry,
|
|
94
|
+
primary: hashJoinEntryColumnId(entry.primary),
|
|
95
|
+
secondary: entry.secondary.map(hashJoinEntryColumnId)
|
|
96
|
+
};
|
|
97
|
+
default:
|
|
98
|
+
throw new Error(`Unsupported join entry type: ${type}`);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
function hashCreateTableRequestColumnId(request) {
|
|
102
|
+
return {
|
|
103
|
+
...request,
|
|
104
|
+
src: hashJoinEntryColumnId(request.src),
|
|
105
|
+
filters: request.filters.map(hashFilterColumnId)
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
async function dump(relativePath, data, logger) {
|
|
109
|
+
if (!process.env.MI_DUMP_PFRAMES_RS)
|
|
110
|
+
return;
|
|
111
|
+
try {
|
|
112
|
+
const relativeUri = relativePath.map((part) => encodeURIComponent(part));
|
|
113
|
+
const fileDir = path.join(process.env.MI_DUMP_PFRAMES_RS, ...relativeUri.slice(0, -1));
|
|
114
|
+
await ensureDirExists(fileDir);
|
|
115
|
+
const filePath = path.join(process.env.MI_DUMP_PFRAMES_RS, ...relativeUri);
|
|
116
|
+
const fileData = ArrayBuffer.isView(data)
|
|
117
|
+
? data
|
|
118
|
+
: JSON.stringify(data, null, 2);
|
|
119
|
+
await writeFile(filePath, fileData);
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
logger?.('warn', `error while dumping PFrames data: ${error}`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
exports.dump = dump;
|
|
127
|
+
exports.hashColumnId = hashColumnId;
|
|
128
|
+
exports.hashCreateTableRequestColumnId = hashCreateTableRequestColumnId;
|
|
129
|
+
exports.hashFilterColumnId = hashFilterColumnId;
|
|
130
|
+
exports.hashSortingColumnId = hashSortingColumnId;
|
|
131
|
+
exports.hashTableColumnId = hashTableColumnId;
|
|
132
|
+
exports.hashUniqueValuesRequestColumnId = hashUniqueValuesRequestColumnId;
|
|
133
|
+
//# sourceMappingURL=dump.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dump.cjs","sources":["../export/dump.ts"],"sourcesContent":["import { createHash } from 'node:crypto';\nimport { createWriteStream, promises as fs } from 'node:fs';\nimport path from 'node:path';\nimport { Readable } from 'node:stream';\nimport { pipeline } from 'node:stream/promises';\nimport type { PFrameInternal } from '@milaboratories/pl-model-middle-layer';\nimport {\n PObjectId,\n PTableColumnId,\n PTableRecordFilter,\n PTableSorting,\n UniqueValuesRequest\n} from '@milaboratories/pl-model-common';\n\nfunction fileExists(path: string): Promise<boolean> {\n return fs\n .access(path)\n .then(() => true)\n .catch(() => false);\n}\n\nasync function ensureDirExists(fileOrDir: string): Promise<void> {\n if (!(await fileExists(fileOrDir))) {\n await fs.mkdir(fileOrDir, { recursive: true });\n }\n}\n\nasync function writeFile(\n filePath: string,\n data: string | Uint8Array\n): Promise<void> {\n const tempPath = `${filePath}.tmp`;\n if (await fileExists(tempPath)) {\n await fs.rm(tempPath, { recursive: true });\n }\n\n const buffer = typeof data === 'string' ? Buffer.from(data, 'utf8') : data;\n const source = Readable.from(buffer);\n const destination = createWriteStream(tempPath, { flags: 'wx' });\n await pipeline(source, destination);\n\n await fs.rename(tempPath, filePath);\n}\n\nexport function hashColumnId(columnId: PObjectId): PObjectId {\n return createHash('sha256').update(columnId).digest('hex') as PObjectId;\n}\n\nexport function hashTableColumnId(tableId: PTableColumnId): PTableColumnId {\n if (tableId.type === 'column') {\n return {\n ...tableId,\n id: hashColumnId(tableId.id)\n };\n }\n return tableId;\n}\n\nexport function hashFilterColumnId(\n filter: PTableRecordFilter\n): PTableRecordFilter {\n return {\n ...filter,\n column: hashTableColumnId(filter.column)\n };\n}\n\nexport function hashUniqueValuesRequestColumnId(\n request: UniqueValuesRequest\n): UniqueValuesRequest {\n return {\n ...request,\n columnId: hashColumnId(request.columnId),\n filters: request.filters.map(hashFilterColumnId)\n };\n}\n\nexport function hashSortingColumnId(sorting: PTableSorting): PTableSorting {\n return {\n ...sorting,\n column: hashTableColumnId(sorting.column)\n };\n}\n\nfunction hashJoinEntryColumnId(\n entry: PFrameInternal.JoinEntryV3\n): PFrameInternal.JoinEntryV3 {\n const type = entry.type;\n switch (type) {\n case 'column':\n return {\n ...entry,\n columnId: hashColumnId(entry.columnId)\n };\n case 'slicedColumn':\n return {\n ...entry,\n columnId: hashColumnId(entry.columnId),\n newId: hashColumnId(entry.newId)\n };\n case 'inlineColumn':\n return {\n ...entry,\n newId: hashColumnId(entry.newId)\n };\n case 'inner':\n return {\n ...entry,\n entries: entry.entries.map(hashJoinEntryColumnId)\n };\n case 'full':\n return {\n ...entry,\n entries: entry.entries.map(hashJoinEntryColumnId)\n };\n case 'outer':\n return {\n ...entry,\n primary: hashJoinEntryColumnId(entry.primary),\n secondary: entry.secondary.map(hashJoinEntryColumnId)\n };\n default:\n throw new Error(`Unsupported join entry type: ${type}`);\n }\n}\n\nexport function hashCreateTableRequestColumnId(\n request: PFrameInternal.CreateTableRequestV3\n): PFrameInternal.CreateTableRequestV3 {\n return {\n ...request,\n src: hashJoinEntryColumnId(request.src),\n filters: request.filters.map(hashFilterColumnId)\n };\n}\n\nexport async function dump(\n relativePath: string[],\n data: { [key: string]: Object } | Uint8Array,\n logger?: PFrameInternal.Logger\n): Promise<void> {\n if (!process.env.MI_DUMP_PFRAMES_RS) return;\n try {\n const relativeUri = relativePath.map((part) => encodeURIComponent(part));\n const fileDir = path.join(\n process.env.MI_DUMP_PFRAMES_RS,\n ...relativeUri.slice(0, -1)\n );\n await ensureDirExists(fileDir);\n\n const filePath = path.join(process.env.MI_DUMP_PFRAMES_RS, ...relativeUri);\n const fileData = ArrayBuffer.isView(data)\n ? (data as Uint8Array)\n : JSON.stringify(data, null, 2);\n await writeFile(filePath, fileData);\n } catch (error: unknown) {\n logger?.('warn', `error while dumping PFrames data: ${error}`);\n }\n}\n"],"names":["fs","Readable","createWriteStream","pipeline","createHash"],"mappings":"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"}
|
package/export_dist/dump.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PFrameInternal } from '@milaboratories/pl-model-middle-layer';
|
|
1
|
+
import type { PFrameInternal } from '@milaboratories/pl-model-middle-layer';
|
|
2
2
|
import { PObjectId, PTableColumnId, PTableRecordFilter, PTableSorting, UniqueValuesRequest } from '@milaboratories/pl-model-common';
|
|
3
3
|
export declare function hashColumnId(columnId: PObjectId): PObjectId;
|
|
4
4
|
export declare function hashTableColumnId(tableId: PTableColumnId): PTableColumnId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dump.d.ts","sourceRoot":"","sources":["../export/dump.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dump.d.ts","sourceRoot":"","sources":["../export/dump.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EACL,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAgCzC,wBAAgB,YAAY,CAAC,QAAQ,EAAE,SAAS,GAAG,SAAS,CAE3D;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,cAAc,CAQzE;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,kBAAkB,GACzB,kBAAkB,CAKpB;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,mBAAmB,GAC3B,mBAAmB,CAMrB;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa,CAKzE;AA4CD,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,cAAc,CAAC,oBAAoB,GAC3C,cAAc,CAAC,oBAAoB,CAMrC;AAED,wBAAsB,IAAI,CACxB,YAAY,EAAE,MAAM,EAAE,EACtB,IAAI,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,GAAG,UAAU,EAC5C,MAAM,CAAC,EAAE,cAAc,CAAC,MAAM,GAC7B,OAAO,CAAC,IAAI,CAAC,CAkBf"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { promises, createWriteStream } from 'node:fs';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { Readable } from 'node:stream';
|
|
5
|
+
import { pipeline } from 'node:stream/promises';
|
|
6
|
+
|
|
7
|
+
function fileExists(path) {
|
|
8
|
+
return promises
|
|
9
|
+
.access(path)
|
|
10
|
+
.then(() => true)
|
|
11
|
+
.catch(() => false);
|
|
12
|
+
}
|
|
13
|
+
async function ensureDirExists(fileOrDir) {
|
|
14
|
+
if (!(await fileExists(fileOrDir))) {
|
|
15
|
+
await promises.mkdir(fileOrDir, { recursive: true });
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
async function writeFile(filePath, data) {
|
|
19
|
+
const tempPath = `${filePath}.tmp`;
|
|
20
|
+
if (await fileExists(tempPath)) {
|
|
21
|
+
await promises.rm(tempPath, { recursive: true });
|
|
22
|
+
}
|
|
23
|
+
const buffer = typeof data === 'string' ? Buffer.from(data, 'utf8') : data;
|
|
24
|
+
const source = Readable.from(buffer);
|
|
25
|
+
const destination = createWriteStream(tempPath, { flags: 'wx' });
|
|
26
|
+
await pipeline(source, destination);
|
|
27
|
+
await promises.rename(tempPath, filePath);
|
|
28
|
+
}
|
|
29
|
+
function hashColumnId(columnId) {
|
|
30
|
+
return createHash('sha256').update(columnId).digest('hex');
|
|
31
|
+
}
|
|
32
|
+
function hashTableColumnId(tableId) {
|
|
33
|
+
if (tableId.type === 'column') {
|
|
34
|
+
return {
|
|
35
|
+
...tableId,
|
|
36
|
+
id: hashColumnId(tableId.id)
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
return tableId;
|
|
40
|
+
}
|
|
41
|
+
function hashFilterColumnId(filter) {
|
|
42
|
+
return {
|
|
43
|
+
...filter,
|
|
44
|
+
column: hashTableColumnId(filter.column)
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
function hashUniqueValuesRequestColumnId(request) {
|
|
48
|
+
return {
|
|
49
|
+
...request,
|
|
50
|
+
columnId: hashColumnId(request.columnId),
|
|
51
|
+
filters: request.filters.map(hashFilterColumnId)
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
function hashSortingColumnId(sorting) {
|
|
55
|
+
return {
|
|
56
|
+
...sorting,
|
|
57
|
+
column: hashTableColumnId(sorting.column)
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
function hashJoinEntryColumnId(entry) {
|
|
61
|
+
const type = entry.type;
|
|
62
|
+
switch (type) {
|
|
63
|
+
case 'column':
|
|
64
|
+
return {
|
|
65
|
+
...entry,
|
|
66
|
+
columnId: hashColumnId(entry.columnId)
|
|
67
|
+
};
|
|
68
|
+
case 'slicedColumn':
|
|
69
|
+
return {
|
|
70
|
+
...entry,
|
|
71
|
+
columnId: hashColumnId(entry.columnId),
|
|
72
|
+
newId: hashColumnId(entry.newId)
|
|
73
|
+
};
|
|
74
|
+
case 'inlineColumn':
|
|
75
|
+
return {
|
|
76
|
+
...entry,
|
|
77
|
+
newId: hashColumnId(entry.newId)
|
|
78
|
+
};
|
|
79
|
+
case 'inner':
|
|
80
|
+
return {
|
|
81
|
+
...entry,
|
|
82
|
+
entries: entry.entries.map(hashJoinEntryColumnId)
|
|
83
|
+
};
|
|
84
|
+
case 'full':
|
|
85
|
+
return {
|
|
86
|
+
...entry,
|
|
87
|
+
entries: entry.entries.map(hashJoinEntryColumnId)
|
|
88
|
+
};
|
|
89
|
+
case 'outer':
|
|
90
|
+
return {
|
|
91
|
+
...entry,
|
|
92
|
+
primary: hashJoinEntryColumnId(entry.primary),
|
|
93
|
+
secondary: entry.secondary.map(hashJoinEntryColumnId)
|
|
94
|
+
};
|
|
95
|
+
default:
|
|
96
|
+
throw new Error(`Unsupported join entry type: ${type}`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
function hashCreateTableRequestColumnId(request) {
|
|
100
|
+
return {
|
|
101
|
+
...request,
|
|
102
|
+
src: hashJoinEntryColumnId(request.src),
|
|
103
|
+
filters: request.filters.map(hashFilterColumnId)
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
async function dump(relativePath, data, logger) {
|
|
107
|
+
if (!process.env.MI_DUMP_PFRAMES_RS)
|
|
108
|
+
return;
|
|
109
|
+
try {
|
|
110
|
+
const relativeUri = relativePath.map((part) => encodeURIComponent(part));
|
|
111
|
+
const fileDir = path.join(process.env.MI_DUMP_PFRAMES_RS, ...relativeUri.slice(0, -1));
|
|
112
|
+
await ensureDirExists(fileDir);
|
|
113
|
+
const filePath = path.join(process.env.MI_DUMP_PFRAMES_RS, ...relativeUri);
|
|
114
|
+
const fileData = ArrayBuffer.isView(data)
|
|
115
|
+
? data
|
|
116
|
+
: JSON.stringify(data, null, 2);
|
|
117
|
+
await writeFile(filePath, fileData);
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
logger?.('warn', `error while dumping PFrames data: ${error}`);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
export { dump, hashColumnId, hashCreateTableRequestColumnId, hashFilterColumnId, hashSortingColumnId, hashTableColumnId, hashUniqueValuesRequestColumnId };
|
|
125
|
+
//# sourceMappingURL=dump.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dump.js","sources":["../export/dump.ts"],"sourcesContent":["import { createHash } from 'node:crypto';\nimport { createWriteStream, promises as fs } from 'node:fs';\nimport path from 'node:path';\nimport { Readable } from 'node:stream';\nimport { pipeline } from 'node:stream/promises';\nimport type { PFrameInternal } from '@milaboratories/pl-model-middle-layer';\nimport {\n PObjectId,\n PTableColumnId,\n PTableRecordFilter,\n PTableSorting,\n UniqueValuesRequest\n} from '@milaboratories/pl-model-common';\n\nfunction fileExists(path: string): Promise<boolean> {\n return fs\n .access(path)\n .then(() => true)\n .catch(() => false);\n}\n\nasync function ensureDirExists(fileOrDir: string): Promise<void> {\n if (!(await fileExists(fileOrDir))) {\n await fs.mkdir(fileOrDir, { recursive: true });\n }\n}\n\nasync function writeFile(\n filePath: string,\n data: string | Uint8Array\n): Promise<void> {\n const tempPath = `${filePath}.tmp`;\n if (await fileExists(tempPath)) {\n await fs.rm(tempPath, { recursive: true });\n }\n\n const buffer = typeof data === 'string' ? Buffer.from(data, 'utf8') : data;\n const source = Readable.from(buffer);\n const destination = createWriteStream(tempPath, { flags: 'wx' });\n await pipeline(source, destination);\n\n await fs.rename(tempPath, filePath);\n}\n\nexport function hashColumnId(columnId: PObjectId): PObjectId {\n return createHash('sha256').update(columnId).digest('hex') as PObjectId;\n}\n\nexport function hashTableColumnId(tableId: PTableColumnId): PTableColumnId {\n if (tableId.type === 'column') {\n return {\n ...tableId,\n id: hashColumnId(tableId.id)\n };\n }\n return tableId;\n}\n\nexport function hashFilterColumnId(\n filter: PTableRecordFilter\n): PTableRecordFilter {\n return {\n ...filter,\n column: hashTableColumnId(filter.column)\n };\n}\n\nexport function hashUniqueValuesRequestColumnId(\n request: UniqueValuesRequest\n): UniqueValuesRequest {\n return {\n ...request,\n columnId: hashColumnId(request.columnId),\n filters: request.filters.map(hashFilterColumnId)\n };\n}\n\nexport function hashSortingColumnId(sorting: PTableSorting): PTableSorting {\n return {\n ...sorting,\n column: hashTableColumnId(sorting.column)\n };\n}\n\nfunction hashJoinEntryColumnId(\n entry: PFrameInternal.JoinEntryV3\n): PFrameInternal.JoinEntryV3 {\n const type = entry.type;\n switch (type) {\n case 'column':\n return {\n ...entry,\n columnId: hashColumnId(entry.columnId)\n };\n case 'slicedColumn':\n return {\n ...entry,\n columnId: hashColumnId(entry.columnId),\n newId: hashColumnId(entry.newId)\n };\n case 'inlineColumn':\n return {\n ...entry,\n newId: hashColumnId(entry.newId)\n };\n case 'inner':\n return {\n ...entry,\n entries: entry.entries.map(hashJoinEntryColumnId)\n };\n case 'full':\n return {\n ...entry,\n entries: entry.entries.map(hashJoinEntryColumnId)\n };\n case 'outer':\n return {\n ...entry,\n primary: hashJoinEntryColumnId(entry.primary),\n secondary: entry.secondary.map(hashJoinEntryColumnId)\n };\n default:\n throw new Error(`Unsupported join entry type: ${type}`);\n }\n}\n\nexport function hashCreateTableRequestColumnId(\n request: PFrameInternal.CreateTableRequestV3\n): PFrameInternal.CreateTableRequestV3 {\n return {\n ...request,\n src: hashJoinEntryColumnId(request.src),\n filters: request.filters.map(hashFilterColumnId)\n };\n}\n\nexport async function dump(\n relativePath: string[],\n data: { [key: string]: Object } | Uint8Array,\n logger?: PFrameInternal.Logger\n): Promise<void> {\n if (!process.env.MI_DUMP_PFRAMES_RS) return;\n try {\n const relativeUri = relativePath.map((part) => encodeURIComponent(part));\n const fileDir = path.join(\n process.env.MI_DUMP_PFRAMES_RS,\n ...relativeUri.slice(0, -1)\n );\n await ensureDirExists(fileDir);\n\n const filePath = path.join(process.env.MI_DUMP_PFRAMES_RS, ...relativeUri);\n const fileData = ArrayBuffer.isView(data)\n ? (data as Uint8Array)\n : JSON.stringify(data, null, 2);\n await writeFile(filePath, fileData);\n } catch (error: unknown) {\n logger?.('warn', `error while dumping PFrames data: ${error}`);\n }\n}\n"],"names":["fs"],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var wrapper = require('./wrapper.cjs');
|
|
4
|
+
|
|
5
|
+
const PFrameFactory = {
|
|
6
|
+
createPFrame: (options) => {
|
|
7
|
+
return new wrapper.PFrame(options);
|
|
8
|
+
},
|
|
9
|
+
pprofDump: async () => {
|
|
10
|
+
return await wrapper.pprofDump();
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
exports.PFrameFactory = PFrameFactory;
|
|
15
|
+
//# sourceMappingURL=export.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.cjs","sources":["../export/export.ts"],"sourcesContent":["import type { PFrameInternal } from '@milaboratories/pl-model-middle-layer';\nimport { PFrame, pprofDump } from './wrapper';\n\nexport const PFrameFactory: PFrameInternal.PFrameFactory = {\n createPFrame: (\n options: PFrameInternal.PFrameOptions\n ): PFrameInternal.PFrameV10 => {\n return new PFrame(options);\n },\n pprofDump: async (): Promise<Uint8Array> => {\n return await pprofDump();\n }\n};\n"],"names":["PFrame","pprofDump"],"mappings":";;;;AAGO,MAAM,aAAa,GAAiC;AACzD,IAAA,YAAY,EAAE,CACZ,OAAqC,KACT;AAC5B,QAAA,OAAO,IAAIA,cAAM,CAAC,OAAO,CAAC;IAC5B,CAAC;IACD,SAAS,EAAE,YAAgC;QACzC,OAAO,MAAMC,iBAAS,EAAE;IAC1B;;;;;"}
|
package/export_dist/export.d.ts
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
import { PFrameInternal } from '@milaboratories/pl-model-middle-layer';
|
|
2
|
-
export
|
|
3
|
-
new (spillPath: string, logger?: PFrameInternal.Logger): PFrameInternal.PFrameV9;
|
|
4
|
-
pprofDump: () => Promise<Uint8Array>;
|
|
5
|
-
};
|
|
6
|
-
export declare const PFrame: PFrame;
|
|
1
|
+
import type { PFrameInternal } from '@milaboratories/pl-model-middle-layer';
|
|
2
|
+
export declare const PFrameFactory: PFrameInternal.PFrameFactory;
|
|
7
3
|
//# sourceMappingURL=export.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../export/export.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAG5E,
|
|
1
|
+
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../export/export.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAG5E,eAAO,MAAM,aAAa,EAAE,cAAc,CAAC,aAS1C,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { pprofDump, PFrame } from './wrapper.js';
|
|
2
|
+
|
|
3
|
+
const PFrameFactory = {
|
|
4
|
+
createPFrame: (options) => {
|
|
5
|
+
return new PFrame(options);
|
|
6
|
+
},
|
|
7
|
+
pprofDump: async () => {
|
|
8
|
+
return await pprofDump();
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export { PFrameFactory };
|
|
13
|
+
//# sourceMappingURL=export.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.js","sources":["../export/export.ts"],"sourcesContent":["import type { PFrameInternal } from '@milaboratories/pl-model-middle-layer';\nimport { PFrame, pprofDump } from './wrapper';\n\nexport const PFrameFactory: PFrameInternal.PFrameFactory = {\n createPFrame: (\n options: PFrameInternal.PFrameOptions\n ): PFrameInternal.PFrameV10 => {\n return new PFrame(options);\n },\n pprofDump: async (): Promise<Uint8Array> => {\n return await pprofDump();\n }\n};\n"],"names":[],"mappings":";;AAGO,MAAM,aAAa,GAAiC;AACzD,IAAA,YAAY,EAAE,CACZ,OAAqC,KACT;AAC5B,QAAA,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;IAC5B,CAAC;IACD,SAAS,EAAE,YAAgC;QACzC,OAAO,MAAM,SAAS,EAAE;IAC1B;;;;;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _export = require('./export.cjs');
|
|
4
|
+
var pframesRsServ = require('@milaboratories/pframes-rs-serv');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
exports.PFrameFactory = _export.PFrameFactory;
|
|
9
|
+
Object.defineProperty(exports, "HttpHelpers", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: function () { return pframesRsServ.HttpHelpers; }
|
|
12
|
+
});
|
|
13
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
|
package/export_dist/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../export/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../export/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC"}
|
package/export_dist/index.js
CHANGED
|
@@ -1,22 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
${s.ensureError(r).message}`)}}addColumnSpec(r,e){const t=m.ulid();l([`${this.id}`,`${t}.json`],{timeStamp:Date.now(),requestType:"addColumnSpec",requestData:{columnId:$(r),columnSpec:e}},this.logger),l([`${this.id}`,"data",`${$(r)}.spec`],{...e},this.logger);try{return d.pFrameAddColumnSpec(this.frame,r,e)}catch(i){throw new s.PFrameError(`PFrame ${this.id} addColumnSpec request ${t} failed, columnId: ${JSON.stringify(r)}, columnSpec: ${JSON.stringify(e)}, error:
|
|
4
|
-
${s.ensureError(i).message}`)}}setDataSource(r){const e=m.ulid();l([`${this.id}`,`${e}.json`],{timeStamp:Date.now(),requestType:"setDataSource"},this.logger);const t={preloadBlob:async i=>{var u,h;const n=m.ulid();l([`${this.id}`,`${n}.json`],{timeStamp:Date.now(),requestType:"preloadBlob",requestData:{blobIds:i}},this.logger),(u=this.logger)==null||u.call(this,"info",`PFrame ${this.id} preloadBlob started, blobIds: ${JSON.stringify(i)}`);const o=performance.now();try{return await r.preloadBlob(i)}finally{const c=performance.now();(h=this.logger)==null||h.call(this,"info",`PFrame ${this.id} preloadBlob finished, took ${f(Math.round(c-o))} (${i.length} blobs)`)}},resolveBlobContent:async i=>{var u;const n=m.ulid();l([`${this.id}`,`${n}.json`],{timeStamp:Date.now(),requestType:"resolveBlobContent",requestData:{blobId:i}},this.logger);const o=await r.resolveBlobContent(i);return(u=this.logger)==null||u.call(this,"info",`PFrame ${this.id} resolved blob ${i}`),l([`${this.id}`,"data",`${i}`],o,this.logger),o}};try{return d.pFrameSetDataSource(this.frame,t)}catch(i){throw new s.PFrameError(`PFrame ${this.id} setDataSource request ${e} failed, dataSource: ${r.toString()}, error:
|
|
5
|
-
${s.ensureError(i).message}`)}}setColumnData(r,e,t){var n;const i=m.ulid();l([`${this.id}`,`${i}.json`],{timeStamp:Date.now(),requestType:"setColumnData",requestData:{columnId:$(r),dataInfo:e}},this.logger),l([`${this.id}`,"data",`${$(r)}.datainfo`],{...e},this.logger);try{return(n=t==null?void 0:t.signal)==null||n.throwIfAborted(),d.pFrameSetColumnData(this.frame,r,e,t==null?void 0:t.signal)}catch(o){throw new s.PFrameError(`PFrame ${this.id} setColumnData request ${i} failed, columnId: ${JSON.stringify(r)}, dataInfo: ${JSON.stringify(e)}, error:
|
|
6
|
-
${s.ensureError(o).message}`)}}dispose(){var e;const r=m.ulid();l([`${this.id}`,`${r}.json`],{timeStamp:Date.now(),requestType:"dispose"},this.logger);try{d.pFrameDispose(this.frame),(e=this.logger)==null||e.call(this,"info",`PFrame ${this.id} disposed`)}catch(t){throw new s.PFrameError(`PFrame ${this.id} dispose request ${r} failed, error:
|
|
7
|
-
${s.ensureError(t).message}`)}}[Symbol.dispose](){this.dispose()}async findColumns(r){var i;const e=m.ulid();l([`${this.id}`,`${e}.json`],{timeStamp:Date.now(),requestType:"findColumns",requestData:r},this.logger);const t=performance.now();try{return await d.pFrameFindColumns(this.frame,r)}catch(n){throw new s.PFrameError(`PFrame ${this.id} findColumns request ${e} failed, request: ${JSON.stringify(r)}, error:
|
|
8
|
-
${s.ensureError(n).message}`)}finally{const n=performance.now();(i=this.logger)==null||i.call(this,"info",`PFrame ${this.id} findColumns request ${e} took ${f(Math.round(n-t))}`)}}async deleteColumn(r){var i;const e=m.ulid();l([`${this.id}`,`${e}.json`],{timeStamp:Date.now(),requestType:"deleteColumn",requestData:r},this.logger);const t=performance.now();try{return await d.pFrameDeleteColumn(this.frame,r)}catch(n){throw new s.PFrameError(`PFrame ${this.id} deleteColumn request ${e} failed, request: ${JSON.stringify(r)}, error:
|
|
9
|
-
${s.ensureError(n).message}`)}finally{const n=performance.now();(i=this.logger)==null||i.call(this,"info",`PFrame ${this.id} deleteColumn request ${e} took ${f(Math.round(n-t))}`)}}async getColumnSpec(r){var i;const e=m.ulid();l([`${this.id}`,`${e}.json`],{timeStamp:Date.now(),requestType:"getColumnSpec",requestData:{columnId:$(r)}},this.logger);const t=performance.now();try{return await d.pFrameGetColumnSpec(this.frame,r)}catch(n){throw new s.PFrameError(`PFrame ${this.id} getColumnSpec request ${e} failed, columnId: ${JSON.stringify(r)}, error:
|
|
10
|
-
${s.ensureError(n).message}`)}finally{const n=performance.now();(i=this.logger)==null||i.call(this,"info",`PFrame ${this.id} getColumnSpec request ${e} took ${f(Math.round(n-t))}`)}}async listColumns(){var t;const r=m.ulid();l([`${this.id}`,`${r}.json`],{timeStamp:Date.now(),requestType:"listColumns"},this.logger);const e=performance.now();try{return await d.pFrameListColumns(this.frame)}catch(i){throw new s.PFrameError(`PFrame ${this.id} listColumns request ${r} failed, error:
|
|
11
|
-
${s.ensureError(i).message}`)}finally{const i=performance.now();(t=this.logger)==null||t.call(this,"info",`PFrame ${this.id} listColumns request ${r} took ${f(Math.round(i-e))}`)}}createTable(r){var n;const e=m.ulid(),t={timeStamp:Date.now(),requestType:"createTable",requestData:V(r)};l([`${this.id}`,`${e}.json`],t,this.logger),l([`${this.id}`,`${e}`,`${e}.json`],t,this.logger);const i=performance.now();try{const o=d.pFrameCreateTable(this.frame,e,r);return new y(this,e,o)}catch(o){throw new s.PFrameError(`PFrame ${this.id} createTable request ${e} failed, request: ${JSON.stringify(r)}, error:
|
|
12
|
-
${s.ensureError(o).message}`)}finally{const o=performance.now();(n=this.logger)==null||n.call(this,"info",`PFrame ${this.id} createTable request ${e} took ${f(Math.round(o-i))}`)}}async getUniqueValues(r,e){var n,o,u;const t=m.ulid();l([`${this.id}`,`${t}.json`],{timeStamp:Date.now(),requestType:"getUniqueValues",requestData:_(r)},this.logger),(n=this.logger)==null||n.call(this,"info",`PFrame ${this.id} getUniqueValues request ${t} started`);const i=performance.now();try{return(o=e==null?void 0:e.signal)==null||o.throwIfAborted(),await d.pFrameGetUniqueValues(this.frame,t,r,e==null?void 0:e.signal)}catch(h){throw s.isAbortError(h)?new s.AbortError(`PFrame ${this.id} getUniqueValues request ${t} cancelled`):new s.PFrameError(`PFrame ${this.id} getUniqueValues request ${t} failed, request: ${JSON.stringify(r)}, error:
|
|
13
|
-
${s.ensureError(h).message}`)}finally{const h=performance.now();(u=this.logger)==null||u.call(this,"info",`PFrame ${this.id} getUniqueValues request ${t} finished, took ${f(Math.round(h-i))}`)}}};class y{constructor(r,e,t){var i,n;this.frame=r,this.id=e,this.table=t,(n=(i=this.frame).logger)==null||n.call(i,"info",`PTable ${this.id} created`)}getSpec(){const r=m.ulid();l([`${this.frame.id}`,`${this.id}`,`${r}.json`],{timeStamp:Date.now(),requestType:"getSpec"},this.frame.logger);try{return d.pTableGetSpec(this.table)}catch(e){throw new s.PFrameError(`PTable ${this.id} getSpec request ${r} failed, error:
|
|
14
|
-
${s.ensureError(e).message}`)}}getColumnIndices(r){const e=m.ulid();l([`${this.frame.id}`,`${this.id}`,`${e}.json`],{timeStamp:Date.now(),requestType:"getColumnIndices",requestData:{columnIds:r.map(b)}},this.frame.logger);try{return d.pTableGetColumnIndices(this.table,r)}catch(t){throw new s.PFrameError(`PTable ${this.id} getColumnIndices request ${e} failed, columnIds: ${JSON.stringify(r)}, error:
|
|
15
|
-
${s.ensureError(t).message}`)}}async getFootprint(r){var i,n,o,u,h;const e=m.ulid();l([`${this.frame.id}`,`${this.id}`,`${e}.json`],{timeStamp:Date.now(),requestType:"getFootprint"},this.frame.logger),(n=(i=this.frame).logger)==null||n.call(i,"info",`PTable ${this.id} getFootprint request ${e} started`);const t=performance.now();try{return(o=r==null?void 0:r.signal)==null||o.throwIfAborted(),await d.pTableGetFootprint(this.table,(r==null?void 0:r.withPredecessors)??!1,r==null?void 0:r.signal)}catch(c){throw s.isAbortError(c)?new s.AbortError(`PTable ${this.id} getFootprint request ${e} cancelled`):new s.PFrameError(`PTable ${this.id} getFootprint request ${e} failed, error:
|
|
16
|
-
${s.ensureError(c).message}`)}finally{const c=performance.now();(h=(u=this.frame).logger)==null||h.call(u,"info",`PTable ${this.id} getFootprint request ${e} finished, took ${f(Math.round(c-t))}`)}}async getShape(r){var i,n,o,u,h;const e=m.ulid();l([`${this.frame.id}`,`${this.id}`,`${e}.json`],{timeStamp:Date.now(),requestType:"getShape"},this.frame.logger),(n=(i=this.frame).logger)==null||n.call(i,"info",`PTable ${this.id} getShape request ${e} started`);const t=performance.now();try{return(o=r==null?void 0:r.signal)==null||o.throwIfAborted(),await d.pTableGetShape(this.table,r==null?void 0:r.signal)}catch(c){throw s.isAbortError(c)?new s.AbortError(`PTable ${this.id} getShape request ${e} cancelled`):new s.PFrameError(`PTable ${this.id} getShape request ${e} failed, error:
|
|
17
|
-
${s.ensureError(c).message}`)}finally{const c=performance.now();(h=(u=this.frame).logger)==null||h.call(u,"info",`PTable ${this.id} getShape request ${e} finished, took ${f(Math.round(c-t))}`)}}async getData(r,e){var o,u,h,c,T;const t=m.ulid();l([`${this.frame.id}`,`${this.id}`,`${t}.json`],{timeStamp:Date.now(),requestType:"getData",requestData:{columnIndices:r,range:(e==null?void 0:e.range)??null}},this.frame.logger),(u=(o=this.frame).logger)==null||u.call(o,"info",`PTable ${this.id} getData request ${t} started`);let i=0;const n=performance.now();try{(h=e==null?void 0:e.signal)==null||h.throwIfAborted();const g=await d.pTableGetData(this.table,t,r,e==null?void 0:e.range,e==null?void 0:e.signal);return i=g[0].data.length,g}catch(g){throw s.isAbortError(g)?new s.AbortError(`PTable ${this.id} getData request ${t} cancelled`):new s.PFrameError(`PTable ${this.id} getData request ${t} failed, columnIndices: ${JSON.stringify(r)}, range: ${e!=null&&e.range?JSON.stringify(e.range):void 0}, error:
|
|
18
|
-
${s.ensureError(g).message}`)}finally{const g=performance.now();(T=(c=this.frame).logger)==null||T.call(c,"info",`PTable ${this.id} getData request ${t} finished, took ${f(Math.round(g-n))} (${i} rows)`)}}filter(r){var n,o;const e=m.ulid(),t={timeStamp:Date.now(),table:this.id,requestType:"filter",requestData:{filters:r.map(D)}};l([`${this.frame.id}`,`${e}.json`],t,this.frame.logger),l([`${this.frame.id}`,`${e}`,`${e}.json`],t,this.frame.logger);const i=performance.now();try{const u=d.pTableFilter(this.table,e,r);return new y(this.frame,e,u)}catch(u){throw new s.PFrameError(`PTable ${this.id} filter request ${e} failed, request: ${JSON.stringify(r)}, error:
|
|
19
|
-
${s.ensureError(u).message}`)}finally{const u=performance.now();(o=(n=this.frame).logger)==null||o.call(n,"info",`PTable ${this.id} filter request ${e} took ${f(Math.round(u-i))}`)}}sort(r){var n,o;const e=m.ulid(),t={timeStamp:Date.now(),table:this.id,requestType:"sort",requestData:r.map(B)};l([`${this.frame.id}`,`${e}.json`],t,this.frame.logger),l([`${this.frame.id}`,`${e}`,`${e}.json`],t,this.frame.logger);const i=performance.now();try{const u=d.pTableSort(this.table,e,r);return new y(this.frame,e,u)}catch(u){throw new s.PFrameError(`PTable ${this.id} sort request ${e} failed, request: ${JSON.stringify(r)}, error:
|
|
20
|
-
${s.ensureError(u).message}`)}finally{const u=performance.now();(o=(n=this.frame).logger)==null||o.call(n,"info",`PTable ${this.id} sort request ${e} took ${f(Math.round(u-i))}`)}}dispose(){var e,t;const r=m.ulid();l([`${this.frame.id}`,`${this.id}`,`${r}.json`],{timeStamp:Date.now(),requestType:"dispose"},this.frame.logger);try{d.pTableDispose(this.table),(t=(e=this.frame).logger)==null||t.call(e,"info",`PTable ${this.id} disposed`)}catch(i){throw new s.PFrameError(`PTable ${this.id} dispose request ${r} failed, error:
|
|
21
|
-
${s.ensureError(i).message}`)}}[Symbol.dispose](){this.dispose()}}const G=x;exports.PFrame=G;
|
|
1
|
+
export { PFrameFactory } from './export.js';
|
|
2
|
+
export { HttpHelpers } from '@milaboratories/pframes-rs-serv';
|
|
22
3
|
//# sourceMappingURL=index.js.map
|