@metapages/metapage 1.0.21 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +2245 -1356
- package/dist/index.js.map +1 -1
- package/dist/metapage/Metapage.d.ts +3 -3
- package/dist/metapage/Metapage.d.ts.map +1 -1
- package/package.json +3 -2
- package/src/declarations.d.ts +1 -0
- package/src/metapage/Metapage.ts +37 -14
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ListenerFn } from 'eventemitter3';
|
|
2
|
+
import { MetaframeId, MetaframePipeId, MetapageId } from './core';
|
|
2
3
|
import { MetapageEvents } from './events';
|
|
3
4
|
import { MinimumClientMessage } from './jsonrpc';
|
|
4
5
|
import { MetapageIFrameRpcClient } from './MetapageIFrameRpcClient';
|
|
5
6
|
import { MetapageShared } from './Shared';
|
|
6
|
-
import { MetapageId, MetaframeId, MetaframePipeId } from "./core";
|
|
7
|
-
import { MetapageDefinitionV1, MetapageOptionsV1 } from './v1';
|
|
8
7
|
import { MetaframeInputMap, MetaframeInstance, MetapageInstanceInputs, PipeInput, PipeUpdateBlob } from './v0_4';
|
|
8
|
+
import { MetapageDefinitionV1, MetapageOptionsV1 } from './v1';
|
|
9
9
|
import { VersionsMetapage } from './versions';
|
|
10
10
|
interface MetapageStatePartial {
|
|
11
11
|
inputs: MetapageInstanceInputs;
|
|
@@ -15,7 +15,7 @@ export interface MetapageState {
|
|
|
15
15
|
metaframes: MetapageStatePartial;
|
|
16
16
|
}
|
|
17
17
|
export declare const getLibraryVersionMatching: (version: string) => VersionsMetapage;
|
|
18
|
-
export declare const matchPipe: (
|
|
18
|
+
export declare const matchPipe: (outputName: string, source: string, target?: string) => boolean;
|
|
19
19
|
type MetaframeInputTargetsFromOutput = {
|
|
20
20
|
metaframe: MetaframeId;
|
|
21
21
|
pipe: MetaframePipeId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Metapage.d.ts","sourceRoot":"","sources":["../../src/metapage/Metapage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"Metapage.d.ts","sourceRoot":"","sources":["../../src/metapage/Metapage.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@metapages/metapage",
|
|
3
3
|
"public": true,
|
|
4
|
-
"version": "1.0
|
|
4
|
+
"version": "1.1.0",
|
|
5
5
|
"description": "Connect web pages together",
|
|
6
6
|
"repository": "https://github.com/metapages/metapage",
|
|
7
7
|
"homepage": "https://metapage.io/",
|
|
@@ -21,7 +21,8 @@
|
|
|
21
21
|
"fast-json-stable-stringify": "^2.1.0",
|
|
22
22
|
"fetch-retry": "^6.0.0",
|
|
23
23
|
"mutative": "^1.0.11",
|
|
24
|
-
"object-hash": "^3.0.0"
|
|
24
|
+
"object-hash": "^3.0.0",
|
|
25
|
+
"picomatch-browser": "^2.2.6"
|
|
25
26
|
},
|
|
26
27
|
"devDependencies": {
|
|
27
28
|
"@rollup/plugin-typescript": "^11.1.5",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
declare module "picomatch-browser";
|
package/src/metapage/Metapage.ts
CHANGED
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
import { ListenerFn } from 'eventemitter3';
|
|
2
2
|
import { create } from 'mutative';
|
|
3
|
+
import picomatch from 'picomatch-browser';
|
|
3
4
|
|
|
4
5
|
import { VERSION_METAPAGE } from './Constants';
|
|
5
6
|
import {
|
|
6
7
|
convertMetapageDefinitionToCurrentVersion,
|
|
7
8
|
getMatchingMetapageVersion,
|
|
8
9
|
} from './conversions-metapage';
|
|
10
|
+
import {
|
|
11
|
+
MetaframeId,
|
|
12
|
+
MetaframePipeId,
|
|
13
|
+
MetapageId,
|
|
14
|
+
} from './core';
|
|
9
15
|
import {
|
|
10
16
|
deserializeInputs,
|
|
11
17
|
serializeInputs,
|
|
@@ -31,11 +37,6 @@ import {
|
|
|
31
37
|
INITIAL_NULL_METAPAGE_DEFINITION,
|
|
32
38
|
MetapageShared,
|
|
33
39
|
} from './Shared';
|
|
34
|
-
import { MetapageId, MetaframeId, MetaframePipeId } from "./core";
|
|
35
|
-
import {
|
|
36
|
-
MetapageDefinitionV1,
|
|
37
|
-
MetapageOptionsV1,
|
|
38
|
-
} from './v1';
|
|
39
40
|
import {
|
|
40
41
|
MetaframeInputMap,
|
|
41
42
|
MetaframeInstance,
|
|
@@ -43,6 +44,10 @@ import {
|
|
|
43
44
|
PipeInput,
|
|
44
45
|
PipeUpdateBlob,
|
|
45
46
|
} from './v0_4';
|
|
47
|
+
import {
|
|
48
|
+
MetapageDefinitionV1,
|
|
49
|
+
MetapageOptionsV1,
|
|
50
|
+
} from './v1';
|
|
46
51
|
import { VersionsMetapage } from './versions';
|
|
47
52
|
|
|
48
53
|
interface MetapageStatePartial {
|
|
@@ -68,25 +73,38 @@ export const getLibraryVersionMatching = (
|
|
|
68
73
|
};
|
|
69
74
|
|
|
70
75
|
export const matchPipe = (
|
|
71
|
-
|
|
72
|
-
|
|
76
|
+
outputName: string,
|
|
77
|
+
source: string,
|
|
78
|
+
target?: string
|
|
73
79
|
): boolean => {
|
|
74
|
-
|
|
80
|
+
// console.log(`❓❓ matchPipe: metapage.getState().metaframes=${outputName} source=${source} target=${target}`);
|
|
81
|
+
|
|
82
|
+
if ((!source || source === "*") && (!target || target === "*")) {
|
|
83
|
+
// console.log(`❓matchPipe 1: ✅`);
|
|
75
84
|
return true;
|
|
76
85
|
}
|
|
77
86
|
|
|
78
|
-
if (
|
|
87
|
+
if (outputName === source) {
|
|
88
|
+
// console.log(`❓matchPipe 1.1: ✅`);
|
|
79
89
|
return true;
|
|
80
90
|
}
|
|
81
91
|
|
|
82
|
-
if (
|
|
83
|
-
|
|
92
|
+
if (!picomatch.isMatch(outputName, source)) {
|
|
93
|
+
// console.log(`❓matchPipe 2: ❌`);
|
|
94
|
+
return false;
|
|
84
95
|
}
|
|
85
96
|
|
|
86
|
-
if (
|
|
87
|
-
|
|
97
|
+
if (!target || target === "*" || target.endsWith("/")) {
|
|
98
|
+
// console.log(`❓matchPipe 3: ✅`);
|
|
99
|
+
return true;
|
|
88
100
|
}
|
|
89
101
|
|
|
102
|
+
if (picomatch.isMatch(outputName, target)) {
|
|
103
|
+
// console.log(`❓matchPipe 4: ✅`);
|
|
104
|
+
return true;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// console.log(`❓matchPipe 5: ❌`);
|
|
90
108
|
return false;
|
|
91
109
|
};
|
|
92
110
|
|
|
@@ -556,6 +574,7 @@ export class Metapage extends MetapageShared {
|
|
|
556
574
|
// This call is cached
|
|
557
575
|
getInputsFromOutput(
|
|
558
576
|
source: MetaframeId,
|
|
577
|
+
// the pipe id is simply the name of the output file/object/thing
|
|
559
578
|
outputPipeId: MetaframePipeId
|
|
560
579
|
): MetaframeInputTargetsFromOutput[] {
|
|
561
580
|
// Do all the cache checking
|
|
@@ -581,7 +600,7 @@ export class Metapage extends MetapageShared {
|
|
|
581
600
|
if (inputPipe.metaframe === source) {
|
|
582
601
|
// Check the kind of source string
|
|
583
602
|
// it could be a basic string, or a glob?
|
|
584
|
-
if (matchPipe(outputPipeId, inputPipe.source)) {
|
|
603
|
+
if (matchPipe(outputPipeId, inputPipe.source || "*", inputPipe.target || "*")) {
|
|
585
604
|
// A match, now figure out the actual input pipe name
|
|
586
605
|
// since it might be * or absent meaning that the input
|
|
587
606
|
// field name is the same as the incoming
|
|
@@ -592,6 +611,8 @@ export class Metapage extends MetapageShared {
|
|
|
592
611
|
inputPipe.target === ""
|
|
593
612
|
) {
|
|
594
613
|
targetName = outputPipeId;
|
|
614
|
+
} else if (targetName.endsWith("/")) {
|
|
615
|
+
targetName = targetName + outputPipeId;
|
|
595
616
|
}
|
|
596
617
|
targets.push({ metaframe: metaframeId, pipe: targetName });
|
|
597
618
|
}
|
|
@@ -948,6 +969,8 @@ export class Metapage extends MetapageShared {
|
|
|
948
969
|
outputKeys.forEach((outputKey, i) => {
|
|
949
970
|
const targets: MetaframeInputTargetsFromOutput[] =
|
|
950
971
|
this.getInputsFromOutput(metaframeId!, outputKey);
|
|
972
|
+
|
|
973
|
+
// console.log(`targets:`, targets);
|
|
951
974
|
if (targets.length > 0) {
|
|
952
975
|
targets.forEach((target) => {
|
|
953
976
|
if (!collectedOutputs[target.metaframe]) {
|