@effect/platform-browser 4.0.0-beta.7 → 4.0.0-beta.70
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/BrowserCrypto.d.ts +23 -0
- package/dist/BrowserCrypto.d.ts.map +1 -0
- package/dist/BrowserCrypto.js +61 -0
- package/dist/BrowserCrypto.js.map +1 -0
- package/dist/BrowserHttpClient.d.ts +32 -16
- package/dist/BrowserHttpClient.d.ts.map +1 -1
- package/dist/BrowserHttpClient.js +66 -18
- package/dist/BrowserHttpClient.js.map +1 -1
- package/dist/BrowserKeyValueStore.d.ts +17 -14
- package/dist/BrowserKeyValueStore.d.ts.map +1 -1
- package/dist/BrowserKeyValueStore.js +130 -10
- package/dist/BrowserKeyValueStore.js.map +1 -1
- package/dist/BrowserPersistence.d.ts +21 -0
- package/dist/BrowserPersistence.d.ts.map +1 -0
- package/dist/BrowserPersistence.js +188 -0
- package/dist/BrowserPersistence.js.map +1 -0
- package/dist/BrowserRuntime.d.ts +31 -4
- package/dist/BrowserRuntime.d.ts.map +1 -1
- package/dist/BrowserRuntime.js +3 -1
- package/dist/BrowserRuntime.js.map +1 -1
- package/dist/BrowserSocket.d.ts +31 -6
- package/dist/BrowserSocket.d.ts.map +1 -1
- package/dist/BrowserSocket.js +31 -6
- package/dist/BrowserSocket.js.map +1 -1
- package/dist/BrowserStream.d.ts +33 -5
- package/dist/BrowserStream.d.ts.map +1 -1
- package/dist/BrowserStream.js +33 -5
- package/dist/BrowserStream.js.map +1 -1
- package/dist/BrowserWorker.d.ts +8 -4
- package/dist/BrowserWorker.d.ts.map +1 -1
- package/dist/BrowserWorker.js +30 -6
- package/dist/BrowserWorker.js.map +1 -1
- package/dist/BrowserWorkerRunner.d.ts +12 -6
- package/dist/BrowserWorkerRunner.d.ts.map +1 -1
- package/dist/BrowserWorkerRunner.js +34 -10
- package/dist/BrowserWorkerRunner.js.map +1 -1
- package/dist/Clipboard.d.ts +40 -13
- package/dist/Clipboard.d.ts.map +1 -1
- package/dist/Clipboard.js +33 -11
- package/dist/Clipboard.js.map +1 -1
- package/dist/Geolocation.d.ts +58 -24
- package/dist/Geolocation.d.ts.map +1 -1
- package/dist/Geolocation.js +46 -16
- package/dist/Geolocation.js.map +1 -1
- package/dist/IndexedDb.d.ts +77 -0
- package/dist/IndexedDb.d.ts.map +1 -0
- package/dist/IndexedDb.js +87 -0
- package/dist/IndexedDb.js.map +1 -0
- package/dist/IndexedDbDatabase.d.ts +150 -0
- package/dist/IndexedDbDatabase.d.ts.map +1 -0
- package/dist/IndexedDbDatabase.js +324 -0
- package/dist/IndexedDbDatabase.js.map +1 -0
- package/dist/IndexedDbQueryBuilder.d.ts +430 -0
- package/dist/IndexedDbQueryBuilder.d.ts.map +1 -0
- package/dist/IndexedDbQueryBuilder.js +927 -0
- package/dist/IndexedDbQueryBuilder.js.map +1 -0
- package/dist/IndexedDbTable.d.ts +153 -0
- package/dist/IndexedDbTable.d.ts.map +1 -0
- package/dist/IndexedDbTable.js +58 -0
- package/dist/IndexedDbTable.js.map +1 -0
- package/dist/IndexedDbVersion.d.ts +80 -0
- package/dist/IndexedDbVersion.d.ts.map +1 -0
- package/dist/IndexedDbVersion.js +25 -0
- package/dist/IndexedDbVersion.js.map +1 -0
- package/dist/Permissions.d.ts +45 -15
- package/dist/Permissions.d.ts.map +1 -1
- package/dist/Permissions.js +35 -10
- package/dist/Permissions.js.map +1 -1
- package/dist/index.d.ts +357 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +357 -10
- package/dist/index.js.map +1 -1
- package/package.json +4 -3
- package/src/BrowserCrypto.ts +71 -0
- package/src/BrowserHttpClient.ts +76 -24
- package/src/BrowserKeyValueStore.ts +146 -12
- package/src/BrowserPersistence.ts +319 -0
- package/src/BrowserRuntime.ts +31 -4
- package/src/BrowserSocket.ts +31 -6
- package/src/BrowserStream.ts +33 -5
- package/src/BrowserWorker.ts +30 -6
- package/src/BrowserWorkerRunner.ts +34 -10
- package/src/Clipboard.ts +37 -13
- package/src/Geolocation.ts +54 -20
- package/src/IndexedDb.ts +115 -0
- package/src/IndexedDbDatabase.ts +645 -0
- package/src/IndexedDbQueryBuilder.ts +2040 -0
- package/src/IndexedDbTable.ts +247 -0
- package/src/IndexedDbVersion.ts +119 -0
- package/src/Permissions.ts +40 -13
- package/src/index.ts +364 -10
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IndexedDbQueryBuilder.js","names":["Cause","Context","Data","Effect","Effectable","Fiber","BaseProto","Option","Pipeable","References","Schema","SchemaIssue","SchemaParser","Stream","Utils","ErrorTypeId","CommonProto","Symbol","iterator","SingleShotGen","Prototype","toJSON","_id","IndexedDbQueryError","TaggedError","message","reason","IndexedDbTransaction","Service","applyDelete","query","callback","resume","database","delete","from","IDBKeyRange","transaction","getOrCreateTransaction","current","table","tableName","durability","objectStore","predicate","keyRange","undefined","only","lowerBound","upperBound","bound","excludeLowerBound","excludeUpperBound","request","limitValue","cursorRequest","openCursor","count","onerror","fail","cause","error","onsuccess","cursor","result","void","value","deleteRequest","continue","event","succeed","die","Error","getReadonlyObjectStore","store","index","applySelect","fnUntraced","keyPath","data","offsetValue","reverseValue","results","offsetApplied","advance","push","key","getAll","reverse","tableSchema","arraySchema","decodeUnknownEffect","pipe","mapError","applyFirst","select","get","NoSuchElementError","readSchema","applyModify","autoIncrement","schema","autoincrementSchema","encodedValue","makeEffect","flatMap","encodeUnknownEffect","operation","add","put","applyModifyAll","values","encodedValues","Array","length","makeValue","encodeValue","makeValueAutoincrement","encodeValueAutoincrement","i","remaining","catchIf","isIssue","issue","SchemaError","applyClear","options","clear","applyClearAll","tables","objectStoreNames","t","oncomplete","getCount","FromProto","selectCache","makeSelect","set","countCache","makeCount","cached","deleteCache","makeDeletePartial","insert","makeModify","upsert","insertAll","makeModifyAll","upsertAll","self","makeFrom","Object","create","reactivity","Map","DeletePartialProto","limit","makeDelete","equals","gte","lte","gt","lt","between","queryOptions","DeleteProto","label","evaluate","filter","prev","item","invalidate","keys","mutation","CountProto","SelectProto","offset","first","makeFirst","stream","chunkSize","Math","min","Number","MAX_SAFE_INTEGER","initial","suspend","total","paginate","map","reachedLimit","isPartial","none","some","reactive","reactiveQueue","FirstProto","String","ModifyProto","ModifyAllProto","QueryBuilderProto","use","f","try","catch","fromCache","clearAll","withTransaction","effect","mode","provideService","PreventSchedulerYield","make","fiber","getCurrent","getOrUndefined","context"],"sources":["../src/IndexedDbQueryBuilder.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines typed table descriptors for the browser IndexedDB integration.
|
|
3
|
+
*
|
|
4
|
+
* An `IndexedDbTable` records the object store name, row schema, primary key
|
|
5
|
+
* path, indexes, auto-increment behavior, and transaction durability used by
|
|
6
|
+
* database versions, migrations, and typed queries. These descriptors are
|
|
7
|
+
* useful for local caches, offline-first application state, background queues,
|
|
8
|
+
* drafts, and other browser-persisted data that should be validated through
|
|
9
|
+
* `Schema`.
|
|
10
|
+
*
|
|
11
|
+
* Key paths and index paths must reference encoded schema fields whose values
|
|
12
|
+
* are valid IndexedDB keys, and compound paths are represented as readonly
|
|
13
|
+
* arrays. Tables without a key path use an out-of-line `key` that is added to
|
|
14
|
+
* reads and required for writes, so the row schema itself cannot define a
|
|
15
|
+
* `key` field. Auto-increment tables require a numeric key path; when that key
|
|
16
|
+
* is omitted on write, the module uses a derived schema without the generated
|
|
17
|
+
* key. Declaring indexes here types query builder index selection, but the
|
|
18
|
+
* indexes still need to be created during database migrations.
|
|
19
|
+
*
|
|
20
|
+
* @since 4.0.0
|
|
21
|
+
*/
|
|
22
|
+
import { type Pipeable } from "effect/Pipeable";
|
|
23
|
+
import * as Schema from "effect/Schema";
|
|
24
|
+
import type { NoInfer } from "effect/Types";
|
|
25
|
+
import type * as IndexedDbQueryBuilder from "./IndexedDbQueryBuilder.ts";
|
|
26
|
+
declare const TypeId = "~@effect/platform-browser/IndexedDbTable";
|
|
27
|
+
/**
|
|
28
|
+
* Typed IndexedDB table definition containing its name, schema, key path, indexes, auto-increment setting, and transaction durability.
|
|
29
|
+
*
|
|
30
|
+
* @category interface
|
|
31
|
+
* @since 4.0.0
|
|
32
|
+
*/
|
|
33
|
+
export interface IndexedDbTable<out Name extends string, out TableSchema extends AnySchemaStruct, out Indexes extends Record<string, IndexedDbQueryBuilder.KeyPath<TableSchema>>, out KeyPath extends Readonly<IDBValidKey | undefined>, out AutoIncrement extends boolean> extends Pipeable {
|
|
34
|
+
new (_: never): {};
|
|
35
|
+
readonly [TypeId]: typeof TypeId;
|
|
36
|
+
readonly tableName: Name;
|
|
37
|
+
readonly tableSchema: TableSchema;
|
|
38
|
+
readonly readSchema: Schema.Top;
|
|
39
|
+
readonly autoincrementSchema: Schema.Top;
|
|
40
|
+
readonly arraySchema: Schema.Top;
|
|
41
|
+
readonly keyPath: KeyPath;
|
|
42
|
+
readonly indexes: Indexes;
|
|
43
|
+
readonly autoIncrement: AutoIncrement;
|
|
44
|
+
readonly durability: IDBTransactionDurability;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Schema constraint for table schemas that expose struct fields.
|
|
48
|
+
*
|
|
49
|
+
* @category models
|
|
50
|
+
* @since 4.0.0
|
|
51
|
+
*/
|
|
52
|
+
export type AnySchemaStruct = Schema.Top & {
|
|
53
|
+
readonly fields: Schema.Struct.Fields;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Type-erased shape of an `IndexedDbTable` used when table type parameters are not needed.
|
|
57
|
+
*
|
|
58
|
+
* @category models
|
|
59
|
+
* @since 4.0.0
|
|
60
|
+
*/
|
|
61
|
+
export interface Any {
|
|
62
|
+
readonly [TypeId]: typeof TypeId;
|
|
63
|
+
readonly keyPath: any;
|
|
64
|
+
readonly tableName: string;
|
|
65
|
+
readonly tableSchema: Schema.Top;
|
|
66
|
+
readonly readSchema: Schema.Top;
|
|
67
|
+
readonly autoincrementSchema: Schema.Top;
|
|
68
|
+
readonly arraySchema: Schema.Top;
|
|
69
|
+
readonly autoIncrement: boolean;
|
|
70
|
+
readonly indexes: any;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Type-erased `IndexedDbTable` retaining the table interface properties with broad type parameters.
|
|
74
|
+
*
|
|
75
|
+
* @category models
|
|
76
|
+
* @since 4.0.0
|
|
77
|
+
*/
|
|
78
|
+
export type AnyWithProps = IndexedDbTable<string, AnySchemaStruct, any, any, boolean>;
|
|
79
|
+
/**
|
|
80
|
+
* Extracts the table name type from an `IndexedDbTable`.
|
|
81
|
+
*
|
|
82
|
+
* @category models
|
|
83
|
+
* @since 4.0.0
|
|
84
|
+
*/
|
|
85
|
+
export type TableName<Table extends Any> = Table["tableName"];
|
|
86
|
+
/**
|
|
87
|
+
* Extracts the key-path type from an `IndexedDbTable`.
|
|
88
|
+
*
|
|
89
|
+
* @category models
|
|
90
|
+
* @since 4.0.0
|
|
91
|
+
*/
|
|
92
|
+
export type KeyPath<Table extends Any> = Table["keyPath"];
|
|
93
|
+
/**
|
|
94
|
+
* Extracts the auto-increment flag type from an `IndexedDbTable`.
|
|
95
|
+
*
|
|
96
|
+
* @category models
|
|
97
|
+
* @since 4.0.0
|
|
98
|
+
*/
|
|
99
|
+
export type AutoIncrement<Table extends Any> = Table["autoIncrement"];
|
|
100
|
+
/**
|
|
101
|
+
* Extracts the schema type from an `IndexedDbTable`.
|
|
102
|
+
*
|
|
103
|
+
* @category models
|
|
104
|
+
* @since 4.0.0
|
|
105
|
+
*/
|
|
106
|
+
export type TableSchema<Table extends Any> = Table["tableSchema"];
|
|
107
|
+
/**
|
|
108
|
+
* Extracts the decoding or encoding service requirements needed by an `IndexedDbTable` schema.
|
|
109
|
+
*
|
|
110
|
+
* @category models
|
|
111
|
+
* @since 4.0.0
|
|
112
|
+
*/
|
|
113
|
+
export type Context<Table extends Any> = Table["tableSchema"]["DecodingServices"] | Table["tableSchema"]["EncodingServices"];
|
|
114
|
+
/**
|
|
115
|
+
* Extracts the encoded row type from an `IndexedDbTable` schema.
|
|
116
|
+
*
|
|
117
|
+
* @category models
|
|
118
|
+
* @since 4.0.0
|
|
119
|
+
*/
|
|
120
|
+
export type Encoded<Table extends Any> = Table["tableSchema"]["Encoded"];
|
|
121
|
+
/**
|
|
122
|
+
* Extracts the index definition map from an `IndexedDbTable`.
|
|
123
|
+
*
|
|
124
|
+
* @category models
|
|
125
|
+
* @since 4.0.0
|
|
126
|
+
*/
|
|
127
|
+
export type Indexes<Table extends Any> = Table["indexes"];
|
|
128
|
+
/**
|
|
129
|
+
* Selects the table with the given name from a union of `IndexedDbTable` types.
|
|
130
|
+
*
|
|
131
|
+
* @category models
|
|
132
|
+
* @since 4.0.0
|
|
133
|
+
*/
|
|
134
|
+
export type WithName<Table extends Any, TableName extends string> = Extract<Table, {
|
|
135
|
+
readonly tableName: TableName;
|
|
136
|
+
}>;
|
|
137
|
+
/**
|
|
138
|
+
* Creates a typed IndexedDB table definition from its name, schema, optional key path, indexes, auto-increment flag, and durability.
|
|
139
|
+
*
|
|
140
|
+
* @category constructors
|
|
141
|
+
* @since 4.0.0
|
|
142
|
+
*/
|
|
143
|
+
export declare const make: <const Name extends string, TableSchema extends AnySchemaStruct, const Indexes extends Record<string, IndexedDbQueryBuilder.KeyPath<TableSchema>>, const KeyPath extends (AutoIncrement extends true ? IndexedDbQueryBuilder.KeyPathNumber<NoInfer<TableSchema>> : IndexedDbQueryBuilder.KeyPath<NoInfer<TableSchema>>) | undefined = undefined, const AutoIncrement extends boolean = false>(options: {
|
|
144
|
+
readonly name: Name;
|
|
145
|
+
readonly schema: [KeyPath] extends [undefined] ? "key" extends keyof TableSchema["fields"] ? "Cannot have a 'key' field when keyPath is undefined" : TableSchema : TableSchema;
|
|
146
|
+
readonly keyPath?: KeyPath;
|
|
147
|
+
readonly indexes?: Indexes | undefined;
|
|
148
|
+
readonly autoIncrement?: IsValidAutoIncrementKeyPath<TableSchema, KeyPath> extends true ? AutoIncrement | undefined : never;
|
|
149
|
+
readonly durability?: IDBTransactionDurability | undefined;
|
|
150
|
+
}) => IndexedDbTable<Name, TableSchema, Indexes, Extract<KeyPath, Readonly<IDBValidKey | undefined>>, AutoIncrement>;
|
|
151
|
+
type IsValidAutoIncrementKeyPath<TableSchema extends AnySchemaStruct, KeyPath> = KeyPath extends keyof TableSchema["Encoded"] ? TableSchema["Encoded"][KeyPath] extends number ? true : false : false;
|
|
152
|
+
export {};
|
|
153
|
+
//# sourceMappingURL=IndexedDbTable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IndexedDbTable.d.ts","sourceRoot":"","sources":["../src/IndexedDbTable.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines typed table descriptors for the browser IndexedDB integration.
|
|
3
|
+
*
|
|
4
|
+
* An `IndexedDbTable` records the object store name, row schema, primary key
|
|
5
|
+
* path, indexes, auto-increment behavior, and transaction durability used by
|
|
6
|
+
* database versions, migrations, and typed queries. These descriptors are
|
|
7
|
+
* useful for local caches, offline-first application state, background queues,
|
|
8
|
+
* drafts, and other browser-persisted data that should be validated through
|
|
9
|
+
* `Schema`.
|
|
10
|
+
*
|
|
11
|
+
* Key paths and index paths must reference encoded schema fields whose values
|
|
12
|
+
* are valid IndexedDB keys, and compound paths are represented as readonly
|
|
13
|
+
* arrays. Tables without a key path use an out-of-line `key` that is added to
|
|
14
|
+
* reads and required for writes, so the row schema itself cannot define a
|
|
15
|
+
* `key` field. Auto-increment tables require a numeric key path; when that key
|
|
16
|
+
* is omitted on write, the module uses a derived schema without the generated
|
|
17
|
+
* key. Declaring indexes here types query builder index selection, but the
|
|
18
|
+
* indexes still need to be created during database migrations.
|
|
19
|
+
*
|
|
20
|
+
* @since 4.0.0
|
|
21
|
+
*/
|
|
22
|
+
import { pipeArguments } from "effect/Pipeable";
|
|
23
|
+
import * as Schema from "effect/Schema";
|
|
24
|
+
import * as Struct from "effect/Struct";
|
|
25
|
+
import * as IndexedDb from "./IndexedDb.js";
|
|
26
|
+
const TypeId = "~@effect/platform-browser/IndexedDbTable";
|
|
27
|
+
const Proto = {
|
|
28
|
+
[TypeId]: TypeId,
|
|
29
|
+
pipe() {
|
|
30
|
+
return pipeArguments(this, arguments);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Creates a typed IndexedDB table definition from its name, schema, optional key path, indexes, auto-increment flag, and durability.
|
|
35
|
+
*
|
|
36
|
+
* @category constructors
|
|
37
|
+
* @since 4.0.0
|
|
38
|
+
*/
|
|
39
|
+
export const make = options => {
|
|
40
|
+
// oxlint-disable-next-line typescript/no-extraneous-class
|
|
41
|
+
class Table {}
|
|
42
|
+
Object.assign(Table, Proto);
|
|
43
|
+
const readSchema = options.keyPath === undefined ? Schema.Struct({
|
|
44
|
+
...options.schema.fields,
|
|
45
|
+
key: IndexedDb.IDBValidKey
|
|
46
|
+
}) : options.schema;
|
|
47
|
+
Table.tableName = options.name;
|
|
48
|
+
Table.tableSchema = options.schema;
|
|
49
|
+
Table.readSchema = readSchema;
|
|
50
|
+
Table.arraySchema = Schema.Array(readSchema);
|
|
51
|
+
Table.autoincrementSchema = options.autoIncrement ? Schema.Struct(Struct.omit(options.schema.fields, [options.keyPath])) : options.schema;
|
|
52
|
+
Table.keyPath = options.keyPath;
|
|
53
|
+
Table.indexes = options.indexes;
|
|
54
|
+
Table.autoIncrement = options.autoIncrement === true;
|
|
55
|
+
Table.durability = options.durability ?? "relaxed";
|
|
56
|
+
return Table;
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=IndexedDbTable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IndexedDbTable.js","names":["pipeArguments","Schema","Struct","IndexedDb","TypeId","Proto","pipe","arguments","make","options","Table","Object","assign","readSchema","keyPath","undefined","schema","fields","key","IDBValidKey","tableName","name","tableSchema","arraySchema","Array","autoincrementSchema","autoIncrement","omit","indexes","durability"],"sources":["../src/IndexedDbTable.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;AAqBA,SAAwBA,aAAa,QAAQ,iBAAiB;AAC9D,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,MAAM,MAAM,eAAe;AAEvC,OAAO,KAAKC,SAAS,MAAM,gBAAgB;AAG3C,MAAMC,MAAM,GAAG,0CAA0C;AA4IzD,MAAMC,KAAK,GAAG;EACZ,CAACD,MAAM,GAAGA,MAAM;EAChBE,IAAIA,CAAA;IACF,OAAON,aAAa,CAAC,IAAI,EAAEO,SAAS,CAAC;EACvC;CACD;AAED;;;;;;AAMA,OAAO,MAAMC,IAAI,GAYfC,OAcD,IAMG;EACF;EACA,MAAMC,KAAK;EACXC,MAAM,CAACC,MAAM,CAACF,KAAK,EAAEL,KAAK,CAAC;EAC3B,MAAMQ,UAAU,GAAGJ,OAAO,CAACK,OAAO,KAAKC,SAAS,GAC5Cd,MAAM,CAACC,MAAM,CAAC;IACd,GAAIO,OAAO,CAACO,MAA4B,CAACC,MAAM;IAC/CC,GAAG,EAAEf,SAAS,CAACgB;GAChB,CAAC,GACAV,OAAO,CAACO,MAAM;EAChBN,KAAa,CAACU,SAAS,GAAGX,OAAO,CAACY,IAAI;EACtCX,KAAa,CAACY,WAAW,GAAGb,OAAO,CAACO,MAAM;EAC1CN,KAAa,CAACG,UAAU,GAAGA,UAAU;EACrCH,KAAa,CAACa,WAAW,GAAGtB,MAAM,CAACuB,KAAK,CAACX,UAAiB,CAAC;EAC3DH,KAAa,CAACe,mBAAmB,GAAGhB,OAAO,CAACiB,aAAa,GACvDzB,MAAM,CAACC,MAAM,CAACA,MAAM,CAACyB,IAAI,CAAElB,OAAO,CAACO,MAA4B,CAACC,MAAM,EAAE,CAACR,OAAO,CAACK,OAAQ,CAAQ,CAAC,CAAC,GACnGL,OAAO,CAACO,MAAM;EAChBN,KAAa,CAACI,OAAO,GAAGL,OAAO,CAACK,OAAO;EACvCJ,KAAa,CAACkB,OAAO,GAAGnB,OAAO,CAACmB,OAAO;EACvClB,KAAa,CAACgB,aAAa,GAAGjB,OAAO,CAACiB,aAAa,KAAK,IAAI;EAC5DhB,KAAa,CAACmB,UAAU,GAAGpB,OAAO,CAACoB,UAAU,IAAI,SAAS;EAC5D,OAAOnB,KAAY;AACrB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typed IndexedDB schema version definitions.
|
|
3
|
+
*
|
|
4
|
+
* This module represents one logical IndexedDB database version as a non-empty set of `IndexedDbTable` definitions.
|
|
5
|
+
* Versions are consumed by `IndexedDbDatabase.make` and `.add` to type query builders and migration transactions, so
|
|
6
|
+
* applications can describe the tables available after initialization or after each schema upgrade.
|
|
7
|
+
*
|
|
8
|
+
* Use an `IndexedDbVersion` when defining the initial stores for a browser database, adding or removing object stores,
|
|
9
|
+
* changing indexes, or moving data between differently shaped table schemas. The version value is a typed description of
|
|
10
|
+
* the target schema; creating and deleting object stores or indexes still happens explicitly inside the corresponding
|
|
11
|
+
* `IndexedDbDatabase` migration callback.
|
|
12
|
+
*
|
|
13
|
+
* IndexedDB versioning is ordered by the migration chain rather than by a number stored here. Each `.add` step becomes
|
|
14
|
+
* the next browser database version, and only migrations after the browser's current version are run. Include every table
|
|
15
|
+
* that should be queryable in each target version, avoid duplicate table names, and remember that key-path or
|
|
16
|
+
* auto-increment changes usually require creating a new object store and copying data during the upgrade transaction.
|
|
17
|
+
*
|
|
18
|
+
* @since 4.0.0
|
|
19
|
+
*/
|
|
20
|
+
import type { NonEmptyReadonlyArray } from "effect/Array";
|
|
21
|
+
import type { Pipeable } from "effect/Pipeable";
|
|
22
|
+
import type * as IndexedDbTable from "./IndexedDbTable.ts";
|
|
23
|
+
declare const TypeId = "~@effect/platform-browser/IndexedDbVersion";
|
|
24
|
+
/**
|
|
25
|
+
* Typed IndexedDB version definition containing the tables available in that schema version.
|
|
26
|
+
*
|
|
27
|
+
* @category interface
|
|
28
|
+
* @since 4.0.0
|
|
29
|
+
*/
|
|
30
|
+
export interface IndexedDbVersion<out Tables extends IndexedDbTable.AnyWithProps> extends Pipeable {
|
|
31
|
+
new (_: never): {};
|
|
32
|
+
readonly [TypeId]: typeof TypeId;
|
|
33
|
+
readonly tables: ReadonlyMap<string, Tables>;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Type-erased shape of an `IndexedDbVersion`.
|
|
37
|
+
*
|
|
38
|
+
* @category models
|
|
39
|
+
* @since 4.0.0
|
|
40
|
+
*/
|
|
41
|
+
export interface Any {
|
|
42
|
+
readonly [TypeId]: typeof TypeId;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Type-erased `IndexedDbVersion` retaining version properties with broad table types.
|
|
46
|
+
*
|
|
47
|
+
* @category models
|
|
48
|
+
* @since 4.0.0
|
|
49
|
+
*/
|
|
50
|
+
export type AnyWithProps = IndexedDbVersion<IndexedDbTable.AnyWithProps>;
|
|
51
|
+
/**
|
|
52
|
+
* Extracts the table union from an `IndexedDbVersion`.
|
|
53
|
+
*
|
|
54
|
+
* @category models
|
|
55
|
+
* @since 4.0.0
|
|
56
|
+
*/
|
|
57
|
+
export type Tables<Db extends Any> = Db extends IndexedDbVersion<infer _Tables> ? _Tables : never;
|
|
58
|
+
/**
|
|
59
|
+
* Selects a table by name from an `IndexedDbVersion`.
|
|
60
|
+
*
|
|
61
|
+
* @category models
|
|
62
|
+
* @since 4.0.0
|
|
63
|
+
*/
|
|
64
|
+
export type TableWithName<Db extends Any, TableName extends string> = IndexedDbTable.WithName<Tables<Db>, TableName>;
|
|
65
|
+
/**
|
|
66
|
+
* Extracts the schema for a named table within an `IndexedDbVersion`.
|
|
67
|
+
*
|
|
68
|
+
* @category models
|
|
69
|
+
* @since 4.0.0
|
|
70
|
+
*/
|
|
71
|
+
export type SchemaWithName<Db extends Any, TableName extends string> = IndexedDbTable.TableSchema<IndexedDbTable.WithName<Tables<Db>, TableName>>;
|
|
72
|
+
/**
|
|
73
|
+
* Creates an `IndexedDbVersion` from one or more table definitions.
|
|
74
|
+
*
|
|
75
|
+
* @category constructors
|
|
76
|
+
* @since 4.0.0
|
|
77
|
+
*/
|
|
78
|
+
export declare const make: <const Tables extends NonEmptyReadonlyArray<IndexedDbTable.AnyWithProps>>(...tables: Tables) => IndexedDbVersion<Tables[number]>;
|
|
79
|
+
export {};
|
|
80
|
+
//# sourceMappingURL=IndexedDbVersion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IndexedDbVersion.d.ts","sourceRoot":"","sources":["../src/IndexedDbVersion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAE/C,OAAO,KAAK,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAE1D,QAAA,MAAM,MAAM,+CAA+C,CAAA;AAE3D;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB,CAC/B,GAAG,CAAC,MAAM,SAAS,cAAc,CAAC,YAAY,CAC9C,SAAQ,QAAQ;IAChB,KAAI,CAAC,EAAE,KAAK,GAAG,EAAE,CAAA;IACjB,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,MAAM,CAAA;IAChC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC7C;AAED;;;;;GAKG;AACH,MAAM,WAAW,GAAG;IAClB,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,MAAM,CAAA;CACjC;AAED;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,gBAAgB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAA;AAExE;;;;;GAKG;AACH,MAAM,MAAM,MAAM,CAAC,EAAE,SAAS,GAAG,IAAI,EAAE,SAAS,gBAAgB,CAAC,MAAM,OAAO,CAAC,GAAG,OAAO,GAAG,KAAK,CAAA;AAEjG;;;;;GAKG;AACH,MAAM,MAAM,aAAa,CACvB,EAAE,SAAS,GAAG,EACd,SAAS,SAAS,MAAM,IACtB,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;AAElD;;;;;GAKG;AACH,MAAM,MAAM,cAAc,CACxB,EAAE,SAAS,GAAG,EACd,SAAS,SAAS,MAAM,IACtB,cAAc,CAAC,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAA;AAmB9E;;;;;GAKG;AACH,eAAO,MAAM,IAAI,GACf,KAAK,CAAC,MAAM,SAAS,qBAAqB,CAAC,cAAc,CAAC,YAAY,CAAC,EAEvE,GAAG,QAAQ,MAAM,KAChB,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAG9B,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { pipeArguments } from "effect/Pipeable";
|
|
2
|
+
const TypeId = "~@effect/platform-browser/IndexedDbVersion";
|
|
3
|
+
const Proto = {
|
|
4
|
+
[TypeId]: TypeId,
|
|
5
|
+
pipe() {
|
|
6
|
+
return pipeArguments(this, arguments);
|
|
7
|
+
}
|
|
8
|
+
};
|
|
9
|
+
const makeProto = options => {
|
|
10
|
+
// oxlint-disable-next-line typescript/no-extraneous-class
|
|
11
|
+
class Version {}
|
|
12
|
+
Object.assign(Version, Proto);
|
|
13
|
+
Version.tables = options.tables;
|
|
14
|
+
return Version;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Creates an `IndexedDbVersion` from one or more table definitions.
|
|
18
|
+
*
|
|
19
|
+
* @category constructors
|
|
20
|
+
* @since 4.0.0
|
|
21
|
+
*/
|
|
22
|
+
export const make = (...tables) => makeProto({
|
|
23
|
+
tables: new Map(tables.map(table => [table.tableName, table]))
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=IndexedDbVersion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IndexedDbVersion.js","names":["pipeArguments","TypeId","Proto","pipe","arguments","makeProto","options","Version","Object","assign","tables","make","Map","map","table","tableName"],"sources":["../src/IndexedDbVersion.ts"],"sourcesContent":[null],"mappings":"AAqBA,SAASA,aAAa,QAAQ,iBAAiB;AAG/C,MAAMC,MAAM,GAAG,4CAA4C;AAgE3D,MAAMC,KAAK,GAAG;EACZ,CAACD,MAAM,GAAGA,MAAM;EAChBE,IAAIA,CAAA;IACF,OAAOH,aAAa,CAAC,IAAI,EAAEI,SAAS,CAAC;EACvC;CACD;AAED,MAAMC,SAAS,GAAgDC,OAE9D,IAA8B;EAC7B;EACA,MAAMC,OAAO;EACbC,MAAM,CAACC,MAAM,CAACF,OAAO,EAAEL,KAAK,CAAC;EAC3BK,OAAe,CAACG,MAAM,GAAGJ,OAAO,CAACI,MAAM;EACzC,OAAOH,OAAc;AACvB,CAAC;AAED;;;;;;AAMA,OAAO,MAAMI,IAAI,GAAGA,CAGlB,GAAGD,MAAc,KAEjBL,SAAS,CAAC;EACRK,MAAM,EAAE,IAAIE,GAAG,CAACF,MAAM,CAACG,GAAG,CAAEC,KAAK,IAAK,CAACA,KAAK,CAACC,SAAS,EAAED,KAAK,CAAC,CAAC;CAChE,CAAC","ignoreList":[]}
|
package/dist/Permissions.d.ts
CHANGED
|
@@ -1,14 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser Permissions API support for Effect programs.
|
|
3
|
+
*
|
|
4
|
+
* This module provides a `Permissions` service and browser-backed layer for
|
|
5
|
+
* querying `navigator.permissions` from Effect code. Use it to check whether a
|
|
6
|
+
* browser capability is currently `granted`, `prompt`, or `denied` before
|
|
7
|
+
* showing UI for flows such as geolocation, notifications, clipboard access,
|
|
8
|
+
* camera, microphone, or persistent storage.
|
|
9
|
+
*
|
|
10
|
+
* Permission queries do not request access by themselves and should not replace
|
|
11
|
+
* the feature API that actually performs the operation. Browser support for
|
|
12
|
+
* permission names and states is uneven, queries may reject for unsupported or
|
|
13
|
+
* invalid descriptors, and some permissions are only meaningful in secure
|
|
14
|
+
* contexts or after user activation. Returned `PermissionStatus` objects can
|
|
15
|
+
* change when the user updates browser settings or responds to prompts; when
|
|
16
|
+
* watching `change` or `onchange`, account for browser differences and clean up
|
|
17
|
+
* listeners when the surrounding Effect scope ends.
|
|
18
|
+
*
|
|
19
|
+
* @since 4.0.0
|
|
20
|
+
*/
|
|
21
|
+
import * as Context from "effect/Context";
|
|
1
22
|
import * as Effect from "effect/Effect";
|
|
2
23
|
import * as Layer from "effect/Layer";
|
|
3
|
-
import * as ServiceMap from "effect/ServiceMap";
|
|
4
24
|
declare const TypeId = "~@effect/platform-browser/Permissions";
|
|
5
25
|
declare const ErrorTypeId = "~@effect/platform-browser/Permissions/PermissionsError";
|
|
6
26
|
/**
|
|
7
27
|
* Wrapper on the Permission API (`navigator.permissions`) with methods for
|
|
8
28
|
* querying status of permissions.
|
|
9
29
|
*
|
|
10
|
-
* @
|
|
11
|
-
* @
|
|
30
|
+
* @category models
|
|
31
|
+
* @since 4.0.0
|
|
12
32
|
*/
|
|
13
33
|
export interface Permissions {
|
|
14
34
|
readonly [TypeId]: typeof TypeId;
|
|
@@ -19,24 +39,28 @@ export interface Permissions {
|
|
|
19
39
|
name: Name;
|
|
20
40
|
}, PermissionsError>;
|
|
21
41
|
}
|
|
22
|
-
declare const PermissionsInvalidStateError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").
|
|
42
|
+
declare const PermissionsInvalidStateError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
23
43
|
readonly _tag: "InvalidStateError";
|
|
24
44
|
} & Readonly<A>;
|
|
25
45
|
/**
|
|
26
|
-
*
|
|
46
|
+
* Error reason for an `InvalidStateError` raised by the browser Permissions API.
|
|
47
|
+
*
|
|
27
48
|
* @category errors
|
|
49
|
+
* @since 4.0.0
|
|
28
50
|
*/
|
|
29
51
|
export declare class PermissionsInvalidStateError extends PermissionsInvalidStateError_base<{
|
|
30
52
|
readonly cause: unknown;
|
|
31
53
|
}> {
|
|
32
54
|
get message(): string;
|
|
33
55
|
}
|
|
34
|
-
declare const PermissionsTypeError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").
|
|
56
|
+
declare const PermissionsTypeError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
35
57
|
readonly _tag: "TypeError";
|
|
36
58
|
} & Readonly<A>;
|
|
37
59
|
/**
|
|
38
|
-
*
|
|
60
|
+
* Error reason for a `TypeError` raised by the browser Permissions API.
|
|
61
|
+
*
|
|
39
62
|
* @category errors
|
|
63
|
+
* @since 4.0.0
|
|
40
64
|
*/
|
|
41
65
|
export declare class PermissionsTypeError extends PermissionsTypeError_base<{
|
|
42
66
|
readonly cause: unknown;
|
|
@@ -44,16 +68,20 @@ export declare class PermissionsTypeError extends PermissionsTypeError_base<{
|
|
|
44
68
|
get message(): string;
|
|
45
69
|
}
|
|
46
70
|
/**
|
|
47
|
-
*
|
|
71
|
+
* Union of browser Permissions API error reasons represented by the service.
|
|
72
|
+
*
|
|
48
73
|
* @category errors
|
|
74
|
+
* @since 4.0.0
|
|
49
75
|
*/
|
|
50
76
|
export type PermissionsErrorReason = PermissionsInvalidStateError | PermissionsTypeError;
|
|
51
|
-
declare const PermissionsError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").
|
|
77
|
+
declare const PermissionsError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
52
78
|
readonly _tag: "PermissionsError";
|
|
53
79
|
} & Readonly<A>;
|
|
54
80
|
/**
|
|
55
|
-
*
|
|
81
|
+
* Tagged error wrapping a browser Permissions API failure reason.
|
|
82
|
+
*
|
|
56
83
|
* @category errors
|
|
84
|
+
* @since 4.0.0
|
|
57
85
|
*/
|
|
58
86
|
export declare class PermissionsError extends PermissionsError_base<{
|
|
59
87
|
readonly reason: PermissionsErrorReason;
|
|
@@ -65,15 +93,17 @@ export declare class PermissionsError extends PermissionsError_base<{
|
|
|
65
93
|
get message(): string;
|
|
66
94
|
}
|
|
67
95
|
/**
|
|
68
|
-
*
|
|
69
|
-
*
|
|
96
|
+
* Service tag for the browser `Permissions` service.
|
|
97
|
+
*
|
|
98
|
+
* @category services
|
|
99
|
+
* @since 4.0.0
|
|
70
100
|
*/
|
|
71
|
-
export declare const Permissions:
|
|
101
|
+
export declare const Permissions: Context.Service<Permissions, Permissions>;
|
|
72
102
|
/**
|
|
73
103
|
* A layer that directly interfaces with the `navigator.permissions` api
|
|
74
104
|
*
|
|
75
|
-
* @
|
|
76
|
-
* @
|
|
105
|
+
* @category layers
|
|
106
|
+
* @since 4.0.0
|
|
77
107
|
*/
|
|
78
108
|
export declare const layer: Layer.Layer<Permissions>;
|
|
79
109
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Permissions.d.ts","sourceRoot":"","sources":["../src/Permissions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Permissions.d.ts","sourceRoot":"","sources":["../src/Permissions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AAEzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,QAAA,MAAM,MAAM,0CAA0C,CAAA;AACtD,QAAA,MAAM,WAAW,2DAA2D,CAAA;AAE5E;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,MAAM,CAAA;IAEhC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,SAAS,cAAc,EAC1C,IAAI,EAAE,IAAI,KACP,MAAM,CAAC,MAAM,CAGhB,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,GAAG;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,EAC/C,gBAAgB,CACjB,CAAA;CACF;;;;AAED;;;;;GAKG;AACH,qBAAa,4BAA6B,SAAQ,kCAAsC;IACtF,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CACxB,CAAC;IACA,IAAa,OAAO,IAAI,MAAM,CAE7B;CACF;;;;AAED;;;;;GAKG;AACH,qBAAa,oBAAqB,SAAQ,0BAA8B;IACtE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CACxB,CAAC;IACA,IAAa,OAAO,IAAI,MAAM,CAE7B;CACF;AAED;;;;;GAKG;AACH,MAAM,MAAM,sBAAsB,GAAG,4BAA4B,GAAG,oBAAoB,CAAA;;;;AAExF;;;;;GAKG;AACH,qBAAa,gBAAiB,SAAQ,sBAAqC;IACzE,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAA;CACxC,CAAC;gBACY,KAAK,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAA;KAAE;IAO9D,QAAQ,CAAC,CAAC,WAAW,CAAC,4DAAc;IAEpC,IAAa,OAAO,IAAI,MAAM,CAE7B;CACF;AAED;;;;;GAKG;AACH,eAAO,MAAM,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,CAAwC,CAAA;AAE1G;;;;;GAKG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,CAe1C,CAAA"}
|
package/dist/Permissions.js
CHANGED
|
@@ -1,15 +1,34 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Browser Permissions API support for Effect programs.
|
|
3
|
+
*
|
|
4
|
+
* This module provides a `Permissions` service and browser-backed layer for
|
|
5
|
+
* querying `navigator.permissions` from Effect code. Use it to check whether a
|
|
6
|
+
* browser capability is currently `granted`, `prompt`, or `denied` before
|
|
7
|
+
* showing UI for flows such as geolocation, notifications, clipboard access,
|
|
8
|
+
* camera, microphone, or persistent storage.
|
|
9
|
+
*
|
|
10
|
+
* Permission queries do not request access by themselves and should not replace
|
|
11
|
+
* the feature API that actually performs the operation. Browser support for
|
|
12
|
+
* permission names and states is uneven, queries may reject for unsupported or
|
|
13
|
+
* invalid descriptors, and some permissions are only meaningful in secure
|
|
14
|
+
* contexts or after user activation. Returned `PermissionStatus` objects can
|
|
15
|
+
* change when the user updates browser settings or responds to prompts; when
|
|
16
|
+
* watching `change` or `onchange`, account for browser differences and clean up
|
|
17
|
+
* listeners when the surrounding Effect scope ends.
|
|
18
|
+
*
|
|
19
|
+
* @since 4.0.0
|
|
3
20
|
*/
|
|
21
|
+
import * as Context from "effect/Context";
|
|
4
22
|
import * as Data from "effect/Data";
|
|
5
23
|
import * as Effect from "effect/Effect";
|
|
6
24
|
import * as Layer from "effect/Layer";
|
|
7
|
-
import * as ServiceMap from "effect/ServiceMap";
|
|
8
25
|
const TypeId = "~@effect/platform-browser/Permissions";
|
|
9
26
|
const ErrorTypeId = "~@effect/platform-browser/Permissions/PermissionsError";
|
|
10
27
|
/**
|
|
11
|
-
*
|
|
28
|
+
* Error reason for an `InvalidStateError` raised by the browser Permissions API.
|
|
29
|
+
*
|
|
12
30
|
* @category errors
|
|
31
|
+
* @since 4.0.0
|
|
13
32
|
*/
|
|
14
33
|
export class PermissionsInvalidStateError extends /*#__PURE__*/Data.TaggedError("InvalidStateError") {
|
|
15
34
|
get message() {
|
|
@@ -17,8 +36,10 @@ export class PermissionsInvalidStateError extends /*#__PURE__*/Data.TaggedError(
|
|
|
17
36
|
}
|
|
18
37
|
}
|
|
19
38
|
/**
|
|
20
|
-
*
|
|
39
|
+
* Error reason for a `TypeError` raised by the browser Permissions API.
|
|
40
|
+
*
|
|
21
41
|
* @category errors
|
|
42
|
+
* @since 4.0.0
|
|
22
43
|
*/
|
|
23
44
|
export class PermissionsTypeError extends /*#__PURE__*/Data.TaggedError("TypeError") {
|
|
24
45
|
get message() {
|
|
@@ -26,8 +47,10 @@ export class PermissionsTypeError extends /*#__PURE__*/Data.TaggedError("TypeErr
|
|
|
26
47
|
}
|
|
27
48
|
}
|
|
28
49
|
/**
|
|
29
|
-
*
|
|
50
|
+
* Tagged error wrapping a browser Permissions API failure reason.
|
|
51
|
+
*
|
|
30
52
|
* @category errors
|
|
53
|
+
* @since 4.0.0
|
|
31
54
|
*/
|
|
32
55
|
export class PermissionsError extends /*#__PURE__*/Data.TaggedError("PermissionsError") {
|
|
33
56
|
constructor(props) {
|
|
@@ -42,15 +65,17 @@ export class PermissionsError extends /*#__PURE__*/Data.TaggedError("Permissions
|
|
|
42
65
|
}
|
|
43
66
|
}
|
|
44
67
|
/**
|
|
45
|
-
*
|
|
46
|
-
*
|
|
68
|
+
* Service tag for the browser `Permissions` service.
|
|
69
|
+
*
|
|
70
|
+
* @category services
|
|
71
|
+
* @since 4.0.0
|
|
47
72
|
*/
|
|
48
|
-
export const Permissions = /*#__PURE__*/
|
|
73
|
+
export const Permissions = /*#__PURE__*/Context.Service(TypeId);
|
|
49
74
|
/**
|
|
50
75
|
* A layer that directly interfaces with the `navigator.permissions` api
|
|
51
76
|
*
|
|
52
|
-
* @
|
|
53
|
-
* @
|
|
77
|
+
* @category layers
|
|
78
|
+
* @since 4.0.0
|
|
54
79
|
*/
|
|
55
80
|
export const layer = /*#__PURE__*/Layer.succeed(Permissions, /*#__PURE__*/Permissions.of({
|
|
56
81
|
[TypeId]: TypeId,
|