@flighthq/share 0.5.1-next.815.cc08b93 → 0.5.1-next.903.f434bc2
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 +2 -2
- package/dist/share.d.ts +2 -1
- package/dist/share.d.ts.map +1 -1
- package/dist/share.js +7 -2
- package/dist/share.js.map +1 -1
- package/package.json +4 -4
- package/src/share.test.ts +20 -18
- package/src/shareExplicit.test.ts +12 -13
package/README.md
CHANGED
|
@@ -13,5 +13,5 @@ Import the supported application-facing API from `@flighthq/share`. The `@flight
|
|
|
13
13
|
This package is part of the locked-version Flight SDK graph. Applications may instead install and import `@flighthq/sdk` when package-level tree shaking is sufficient.
|
|
14
14
|
|
|
15
15
|
- [Flight project](https://github.com/flighthq/flight)
|
|
16
|
-
- [Source for @flighthq/share@0.5.1-next.
|
|
17
|
-
- [License](https://github.com/flighthq/flight/blob/
|
|
16
|
+
- [Source for @flighthq/share@0.5.1-next.903.f434bc2](https://github.com/flighthq/flight/tree/f434bc233778d75aeea61995df3a8cfaec459a85/packages/share)
|
|
17
|
+
- [License](https://github.com/flighthq/flight/blob/f434bc233778d75aeea61995df3a8cfaec459a85/LICENSE.md)
|
package/dist/share.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { HasShareContent, HasShareFiles, ShareContent, ShareFile, ShareResult, ShareSignals } from '@flighthq/types/contract';
|
|
1
|
+
import type { EntityConstruction, HasShareContent, HasShareFiles, ShareContent, ShareFile, ShareResult, ShareSignals } from '@flighthq/types/contract';
|
|
2
2
|
export declare function attachShareSignals(signals: ShareSignals): void;
|
|
3
3
|
export declare function canShareContent(host: HasShareContent, content: Readonly<ShareContent>): boolean;
|
|
4
4
|
export declare function canShareFiles(host: HasShareFiles, files: readonly ShareFile[]): boolean;
|
|
@@ -6,6 +6,7 @@ export declare function detachShareSignals(signals: ShareSignals): void;
|
|
|
6
6
|
export declare function disposeShareSignals(signals: ShareSignals): void;
|
|
7
7
|
export declare function enableShareSignals(): ShareSignals;
|
|
8
8
|
export declare function hasShareContentFields(content: Readonly<ShareContent>): boolean;
|
|
9
|
+
export declare function initializeShareSignals(out: EntityConstruction<ShareSignals>): void;
|
|
9
10
|
export declare function shareContent(host: HasShareContent, content: Readonly<ShareContent>): Promise<boolean>;
|
|
10
11
|
export declare function shareContentWithResult(host: HasShareContent, content: Readonly<ShareContent>): Promise<ShareResult>;
|
|
11
12
|
export declare function shareFiles(host: HasShareFiles, files: readonly ShareFile[]): Promise<boolean>;
|
package/dist/share.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"share.d.ts","sourceRoot":"","sources":["../src/share.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,YAAY,EACZ,SAAS,EAET,WAAW,EACX,YAAY,EACb,MAAM,0BAA0B,CAAC;AAElC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAE9D;AAID,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,OAAO,CAE/F;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,SAAS,EAAE,GAAG,OAAO,CAGvF;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAE9D;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAG/D;AAED,wBAAgB,kBAAkB,IAAI,YAAY,
|
|
1
|
+
{"version":3,"file":"share.d.ts","sourceRoot":"","sources":["../src/share.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,YAAY,EACZ,SAAS,EAET,WAAW,EACX,YAAY,EACb,MAAM,0BAA0B,CAAC;AAElC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAE9D;AAID,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,OAAO,CAE/F;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,SAAS,EAAE,GAAG,OAAO,CAGvF;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAE9D;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAG/D;AAED,wBAAgB,kBAAkB,IAAI,YAAY,CAIjD;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,OAAO,CAK9E;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,kBAAkB,CAAC,YAAY,CAAC,GAAG,IAAI,CAElF;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAGrG;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAC9B,OAAO,CAAC,WAAW,CAAC,CAStB;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,SAAS,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAI7F;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE/E;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE7E"}
|
package/dist/share.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
|
|
2
2
|
import { clearSignal, createSignal, emitSignal } from '@flighthq/signals/contract';
|
|
3
3
|
export function attachShareSignals(signals) {
|
|
4
4
|
_attachedSignals.add(signals);
|
|
@@ -20,7 +20,9 @@ export function disposeShareSignals(signals) {
|
|
|
20
20
|
clearSignal(signals.onShareResult);
|
|
21
21
|
}
|
|
22
22
|
export function enableShareSignals() {
|
|
23
|
-
|
|
23
|
+
const out = allocateEntity();
|
|
24
|
+
initializeShareSignals(out);
|
|
25
|
+
return finishEntity(out);
|
|
24
26
|
}
|
|
25
27
|
export function hasShareContentFields(content) {
|
|
26
28
|
if (content.title !== undefined && content.title !== '')
|
|
@@ -31,6 +33,9 @@ export function hasShareContentFields(content) {
|
|
|
31
33
|
return true;
|
|
32
34
|
return false;
|
|
33
35
|
}
|
|
36
|
+
export function initializeShareSignals(out) {
|
|
37
|
+
out.onShareResult = createSignal();
|
|
38
|
+
}
|
|
34
39
|
export function shareContent(host, content) {
|
|
35
40
|
if (!hasShareContentFields(content))
|
|
36
41
|
return Promise.resolve(false);
|
package/dist/share.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"share.js","sourceRoot":"","sources":["../src/share.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"share.js","sourceRoot":"","sources":["../src/share.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flighthq/share",
|
|
3
|
-
"version": "0.5.1-next.
|
|
3
|
+
"version": "0.5.1-next.903.f434bc2",
|
|
4
4
|
"author": "Joshua Granick and other contributors",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -38,9 +38,9 @@
|
|
|
38
38
|
"clean:dist": "tsx ../../scripts/clean-package-dist.ts"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@flighthq/entity": "0.5.1-next.
|
|
42
|
-
"@flighthq/signals": "0.5.1-next.
|
|
43
|
-
"@flighthq/types": "0.5.1-next.
|
|
41
|
+
"@flighthq/entity": "0.5.1-next.903.f434bc2",
|
|
42
|
+
"@flighthq/signals": "0.5.1-next.903.f434bc2",
|
|
43
|
+
"@flighthq/types": "0.5.1-next.903.f434bc2"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"typescript": "^5.3.0"
|
package/src/share.test.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
|
|
2
2
|
import { connectSignal } from '@flighthq/signals/contract';
|
|
3
3
|
import { EntityRuntimeKey } from '@flighthq/types/contract';
|
|
4
4
|
import type {
|
|
@@ -26,31 +26,32 @@ import {
|
|
|
26
26
|
shareUrl,
|
|
27
27
|
} from './share';
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
type FilesImplementation = Omit<ShareFilesBackend, typeof EntityRuntimeKey>;
|
|
31
|
-
|
|
32
|
-
function contentHost(overrides: Partial<ContentImplementation> = {}): HasShareContent {
|
|
29
|
+
function contentHost(overrides: Partial<ShareContentBackend> = {}): HasShareContent {
|
|
33
30
|
return {
|
|
34
31
|
share: {
|
|
35
|
-
content:
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
32
|
+
content: (() => {
|
|
33
|
+
const out = allocateEntity<ShareContentBackend>();
|
|
34
|
+
out.canShareContent = () => true;
|
|
35
|
+
out.shareContent = async () => true;
|
|
36
|
+
out.shareContentWithResult = async () => ({ activityType: null, completed: true, dismissed: false });
|
|
37
|
+
Object.assign(out, overrides);
|
|
38
|
+
return finishEntity(out);
|
|
39
|
+
})(),
|
|
41
40
|
},
|
|
42
41
|
};
|
|
43
42
|
}
|
|
44
43
|
|
|
45
|
-
function filesHost(overrides: Partial<
|
|
44
|
+
function filesHost(overrides: Partial<ShareFilesBackend> = {}): HasShareFiles {
|
|
46
45
|
return {
|
|
47
46
|
share: {
|
|
48
|
-
files:
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
47
|
+
files: (() => {
|
|
48
|
+
const out = allocateEntity<ShareFilesBackend>();
|
|
49
|
+
out.canShareContent = () => true;
|
|
50
|
+
out.shareContent = async () => true;
|
|
51
|
+
out.shareContentWithResult = async () => ({ activityType: null, completed: true, dismissed: false });
|
|
52
|
+
Object.assign(out, overrides);
|
|
53
|
+
return finishEntity(out);
|
|
54
|
+
})(),
|
|
54
55
|
},
|
|
55
56
|
};
|
|
56
57
|
}
|
|
@@ -139,6 +140,7 @@ describe('Share contract surface', () => {
|
|
|
139
140
|
'disposeShareSignals',
|
|
140
141
|
'enableShareSignals',
|
|
141
142
|
'hasShareContentFields',
|
|
143
|
+
'initializeShareSignals',
|
|
142
144
|
'shareContent',
|
|
143
145
|
'shareContentWithResult',
|
|
144
146
|
'shareFiles',
|
|
@@ -1,20 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type {
|
|
1
|
+
import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
|
|
2
|
+
import type { HasShareContent, ShareContent, ShareContentBackend } from '@flighthq/types/contract';
|
|
3
3
|
|
|
4
4
|
import { shareText } from './share';
|
|
5
5
|
|
|
6
6
|
function createRecordingHost(label: string, calls: string[]): HasShareContent {
|
|
7
|
-
const content =
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
return { share: { content } };
|
|
7
|
+
const content = allocateEntity<ShareContentBackend>();
|
|
8
|
+
content.canShareContent = () => true;
|
|
9
|
+
content.shareContent = async (payload: Readonly<ShareContent>) => {
|
|
10
|
+
calls.push(`${label}:${payload.text ?? ''}`);
|
|
11
|
+
return true;
|
|
12
|
+
};
|
|
13
|
+
content.shareContentWithResult = async () => {
|
|
14
|
+
return { activityType: null, completed: true, dismissed: false };
|
|
15
|
+
};
|
|
16
|
+
return { share: { content: finishEntity(content) } };
|
|
18
17
|
}
|
|
19
18
|
|
|
20
19
|
describe('explicit Share host isolation', () => {
|